diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/BadRealmTest.java b/tests/base/src/test/java/org/keycloak/tests/model/BadRealmTest.java
similarity index 63%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/BadRealmTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/BadRealmTest.java
index c6d40b78d3d..9a482e424d1 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/BadRealmTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/BadRealmTest.java
@@ -1,28 +1,26 @@
-package org.keycloak.testsuite.model;
-
-import java.util.List;
+package org.keycloak.tests.model;
import org.keycloak.models.KeycloakSession;
-import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.services.managers.RealmManager;
-import org.keycloak.testsuite.AbstractKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
import org.keycloak.utils.ReservedCharValidator;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.fail;
-import static org.junit.Assert.fail;
+@KeycloakIntegrationTest
+public class BadRealmTest {
+
+ @InjectRealm(attachTo = "master")
+ ManagedRealm realm;
-public class BadRealmTest extends AbstractKeycloakTest {
private String name = "MyRealm";
private String id = "MyId";
private String script = "";
- public void addTestRealms(List testRealms) {
- }
-
- @Test
- @ModelTest
+ @TestOnServer
public void testBadRealmName(KeycloakSession session) {
RealmManager manager = new RealmManager(session);
try {
@@ -31,8 +29,7 @@ public class BadRealmTest extends AbstractKeycloakTest {
} catch (ReservedCharValidator.ReservedCharException ex) {}
}
- @Test
- @ModelTest
+ @TestOnServer
public void testBadRealmId(KeycloakSession session) {
RealmManager manager = new RealmManager(session);
try {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CacheTest.java b/tests/base/src/test/java/org/keycloak/tests/model/CacheTest.java
old mode 100755
new mode 100644
similarity index 73%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CacheTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/CacheTest.java
index df5134e35a1..ae30be5fe66
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CacheTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/CacheTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
import java.util.Set;
import java.util.UUID;
@@ -28,28 +28,36 @@ import org.keycloak.models.UserModel;
import org.keycloak.models.UserSessionModel;
import org.keycloak.models.cache.infinispan.ClientAdapter;
import org.keycloak.models.cache.infinispan.RealmAdapter;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
-import org.keycloak.testsuite.Assert;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.realm.RealmConfig;
+import org.keycloak.testframework.realm.RealmConfigBuilder;
+import org.keycloak.testframework.remote.runonserver.InjectRunOnServer;
+import org.keycloak.testframework.remote.runonserver.RunOnServerClient;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class CacheTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class CacheTest {
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
- }
+ @InjectRealm(config = CacheRealmConfig.class)
+ ManagedRealm managedRealm;
+
+ @InjectRunOnServer
+ RunOnServerClient runOnServer;
@Test
public void testStaleCache() throws Exception {
- testingClient.server().run(session -> {
+ runOnServer.run(session -> {
// load up cache
RealmModel realm = session.realms().getRealmByName("test");
assertTrue(realm instanceof RealmAdapter);
@@ -75,22 +83,22 @@ public class CacheTest extends AbstractTestRealmKeycloakTest {
// make sure that app cache was flushed and enabled changed
realm = session.realms().getRealmByName("test");
- Assert.assertEquals(200, realm.getAccessCodeLifespanLogin());
+ Assertions.assertEquals(200, realm.getAccessCodeLifespanLogin());
testApp = session.clients().getClientById(realm, appId);
- Assert.assertFalse(testApp.isEnabled());
+ Assertions.assertFalse(testApp.isEnabled());
});
}
@Test
public void testAddUserNotAddedToCache() {
- testingClient.server().run(session -> {
+ runOnServer.run(session -> {
RealmModel realm = session.realms().getRealmByName("test");
UserModel user = session.users().addUser(realm, "testAddUserNotAddedToCache");
user.setFirstName("firstName");
user.addRequiredAction(UserModel.RequiredAction.CONFIGURE_TOTP);
-
+
UserSessionModel userSession = session.sessions().createUserSession(UUID.randomUUID().toString(), realm, user, "testAddUserNotAddedToCache",
"127.0.0.1", "auth", false, null, null, UserSessionModel.SessionPersistenceState.PERSISTENT);
user = userSession.getUser();
@@ -99,13 +107,13 @@ public class CacheTest extends AbstractTestRealmKeycloakTest {
assertNotNull(user.getLastName());
});
-
+
}
// KEYCLOAK-1842
@Test
public void testRoleMappingsInvalidatedWhenClientRemoved() {
- testingClient.server().run(session -> {
+ runOnServer.run(session -> {
RealmModel realm = session.realms().getRealmByName("test");
UserModel user = session.users().addUser(realm, "joel");
@@ -114,7 +122,7 @@ public class CacheTest extends AbstractTestRealmKeycloakTest {
user.grantRole(fooRole);
});
- testingClient.server().run(session -> {
+ runOnServer.run(session -> {
RealmModel realm = session.realms().getRealmByName("test");
UserModel user = session.users().getUserByUsername(realm, "joel");
long grantedRolesCount = user.getRoleMappingsStream().count();
@@ -127,12 +135,22 @@ public class CacheTest extends AbstractTestRealmKeycloakTest {
Set roles = user.getRoleMappingsStream().collect(Collectors.toSet());
for (RoleModel role : roles) {
- Assert.assertNotNull(role.getContainer());
+ Assertions.assertNotNull(role.getContainer());
}
- Assert.assertEquals(roles.size(), grantedRolesCount - 1);
+ Assertions.assertEquals(roles.size(), grantedRolesCount - 1);
});
}
+ public static final class CacheRealmConfig implements RealmConfig {
+
+ @Override
+ public RealmConfigBuilder configure(RealmConfigBuilder realm) {
+ realm.name("test");
+ realm.addClient("test-app");
+ return realm;
+ }
+ }
+
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java b/tests/base/src/test/java/org/keycloak/tests/model/ClientModelTest.java
similarity index 95%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/ClientModelTest.java
index a0327cecef2..5abc8e482f0 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/ClientModelTest.java
@@ -15,9 +15,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
@@ -33,11 +32,13 @@ import org.keycloak.protocol.oidc.OIDCLoginProtocol;
import org.keycloak.protocol.oidc.mappers.AddressMapper;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.AbstractKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
-
-import org.junit.Test;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.injection.LifeCycle;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.realm.RealmConfig;
+import org.keycloak.testframework.realm.RealmConfigBuilder;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
@@ -47,26 +48,18 @@ import static org.hamcrest.core.IsNull.notNullValue;
* @author Stian Thorgersen
* @author Martin Bartos
*/
-public class ClientModelTest extends AbstractKeycloakTest {
+@KeycloakIntegrationTest
+public class ClientModelTest {
+
+ @InjectRealm(lifecycle = LifeCycle.METHOD, config = ClientModelRealmConfig.class)
+ ManagedRealm managedRealm;
+
private ClientModel client;
private String roleId;
- private String realmName="original";
+ private static final String realmName = "original";
private KeycloakSession currentSession;
- @Override
- protected boolean isImportAfterEachMethod() {
- return true;
- }
-
- @Override
- public void addTestRealms(List testRealms) {
- RealmRepresentation realm = new RealmRepresentation();
- realm.setRealm(realmName);
- realm.setEnabled(true);
- testRealms.add(realm);
- }
-
- public static void assertEquals(ClientModel expected, ClientModel actual) {
+ private static void assertEquals(ClientModel expected, ClientModel actual) {
assertThat(expected.getClientId(), is(actual.getClientId()));
assertThat(expected.getName(), is(actual.getName()));
assertThat(expected.getDescription(), is(actual.getDescription()));
@@ -77,7 +70,6 @@ public class ClientModelTest extends AbstractKeycloakTest {
assertThat(expected.getRegisteredNodes(), is(actual.getRegisteredNodes()));
}
-
private ClientModel setUpClient(RealmModel realm) {
ClientModel client = realm.addClient("app-name");
client.setName("Application");
@@ -99,8 +91,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
return client;
}
- @Test
- @ModelTest
+ @TestOnServer
public void testClientRoleRemovalAndClientScope(KeycloakSession session) {
// Client "from" has a role. Assign this role to a scope to client "scoped". Delete the role and make sure
// cache gets cleared
@@ -148,8 +139,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
}
- @Test
- @ModelTest
+ @TestOnServer
public void testClientRoleRemovalAndClientScopeSameTx(KeycloakSession session) {
// Client "from" has a role. Assign this role to a scope to client "scoped". Delete the role and make sure
// cache gets cleared
@@ -185,8 +175,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testRealmRoleRemovalAndClientScope(KeycloakSession session) {
// Client "from" has a role. Assign this role to a scope to client "scoped". Delete the role and make sure
// cache gets cleared
@@ -218,8 +207,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testCircularClientScopes(KeycloakSession session) {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), session.getContext(), (KeycloakSession sessionCircuilarClient1) -> {
@@ -243,8 +231,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void persist(KeycloakSession session) {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), session.getContext(), (KeycloakSession sessionPersist) -> {
currentSession = sessionPersist;
@@ -261,8 +248,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void json(KeycloakSession session) {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), session.getContext(), (KeycloakSession sessionJson) -> {
currentSession = sessionJson;
@@ -290,8 +276,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testAddApplicationWithId(KeycloakSession session) {
final String id = KeycloakModelUtils.generateId();
String newClientId = KeycloakModelUtils.runJobInTransactionWithResult(session.getKeycloakSessionFactory(), session.getContext(), (KeycloakSession sessionAppWithId1) -> {
@@ -313,8 +298,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testClientScopesBinding(KeycloakSession session) {
AtomicReference scope1Atomic = new AtomicReference<>();
AtomicReference scope2Atomic = new AtomicReference<>();
@@ -405,8 +389,7 @@ public class ClientModelTest extends AbstractKeycloakTest {
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testDefaultDefaultClientScopes(KeycloakSession session) {
AtomicReference scope1Atomic = new AtomicReference<>();
AtomicReference scope2Atomic = new AtomicReference<>();
@@ -510,4 +493,14 @@ public class ClientModelTest extends AbstractKeycloakTest {
realm.removeClientScope(scope3Atomic.get().getId());
});
}
+
+ public static class ClientModelRealmConfig implements RealmConfig {
+
+ @Override
+ public RealmConfigBuilder configure(RealmConfigBuilder realm) {
+ return realm.name(realmName);
+ }
+
+ }
+
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ConcurrentTransactionsTest.java b/tests/base/src/test/java/org/keycloak/tests/model/ConcurrentTransactionsTest.java
old mode 100755
new mode 100644
similarity index 82%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ConcurrentTransactionsTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/ConcurrentTransactionsTest.java
index 581c4d3e2c3..9e6ec007195
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/ConcurrentTransactionsTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/ConcurrentTransactionsTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
import java.util.Arrays;
import java.util.concurrent.CountDownLatch;
@@ -29,34 +29,31 @@ import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.models.RoleModel;
-import org.keycloak.models.UserManager;
import org.keycloak.models.UserModel;
import org.keycloak.models.utils.KeycloakModelUtils;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
import org.jboss.logging.Logger;
-import org.junit.Assert;
-import org.junit.Test;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.nullValue;
+import org.junit.jupiter.api.Assertions;
/**
* @author Marek Posolda
*/
-public class ConcurrentTransactionsTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class ConcurrentTransactionsTest {
private static final int LATCH_TIMEOUT_MS = 30000;
private static final Logger logger = Logger.getLogger(ConcurrentTransactionsTest.class);
- @Test
- @ModelTest(realmName = "test")
- public void persistClient(KeycloakSession session) {
+ @InjectRealm(attachTo = "master")
+ ManagedRealm realm;
+ @TestOnServer
+ public void persistClient(KeycloakSession session) {
final ClientModel[] client = {null};
AtomicReference clientDBIdAtomic = new AtomicReference<>();
AtomicReference exceptionHolder = new AtomicReference<>();
@@ -64,11 +61,7 @@ public class ConcurrentTransactionsTest extends AbstractTestRealmKeycloakTest {
try {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), session.getContext(), (KeycloakSession sessionSetup) -> {
- RealmModel realm = sessionSetup.realms().getRealmByName("test");
- sessionSetup.users().addUser(realm, "user1").setEmail("user1@localhost");
- sessionSetup.users().addUser(realm, "user2").setEmail("user2@localhost");
-
- realm = sessionSetup.realms().createRealm("original");
+ RealmModel realm = sessionSetup.realms().createRealm("original");
RoleModel defaultRole = sessionSetup.roles().addRealmRole(realm, Constants.DEFAULT_ROLES_ROLE_PREFIX + "-" + realm.getName());
realm.setDefaultRole(defaultRole);
@@ -165,7 +158,7 @@ public class ConcurrentTransactionsTest extends AbstractTestRealmKeycloakTest {
}
if (exceptionHolder.get() != null) {
- Assert.fail("Some thread thrown an exception. See the log for the details");
+ Assertions.fail("Some thread thrown an exception. See the log for the details");
}
logger.info("after thread join");
@@ -181,21 +174,19 @@ public class ConcurrentTransactionsTest extends AbstractTestRealmKeycloakTest {
logger.info("SECRET FROM DB : " + clientFromDB.getSecret());
logger.info("SECRET FROM CACHE : " + clientFromCache.getSecret());
- Assert.assertEquals("new", clientFromDB.getSecret());
- Assert.assertEquals("new", clientFromCache.getSecret());
+ Assertions.assertEquals("new", clientFromDB.getSecret());
+ Assertions.assertEquals("new", clientFromCache.getSecret());
session2.sessions().removeUserSessions(realm);
});
} finally {
- KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), kcSession -> tearDownRealm(kcSession, "user1", "user2"));
+ tearDownRealm(session, "original");
}
}
-
// KEYCLOAK-3296 , KEYCLOAK-3494
- @Test
- @ModelTest
+ @TestOnServer
public void removeUserAttribute(KeycloakSession session) throws Exception {
try {
@@ -269,36 +260,19 @@ public class ConcurrentTransactionsTest extends AbstractTestRealmKeycloakTest {
logger.info("removeUserAttribute: after thread join");
if (reference.get() != null) {
- Assert.fail("Exception happened in some of threads. Details: " + reference.get().getMessage());
+ Assertions.fail("Exception happened in some of threads. Details: " + reference.get().getMessage());
}
});
} finally {
- tearDownRealm(session, "john", "john2");
+ tearDownRealm(session, "original");
}
}
- private void tearDownRealm(KeycloakSession session, String user1, String user2) {
- KeycloakSession currentSession = session;
-
- RealmModel realm = currentSession.realms().getRealmByName("original");
-
- UserModel realmUser1 = currentSession.users().getUserByUsername(realm, user1);
- UserModel realmUser2 = currentSession.users().getUserByUsername(realm, user2);
-
- UserManager um = new UserManager(currentSession);
- if (realmUser1 != null) {
- um.removeUser(realm, realmUser1);
+ private void tearDownRealm(KeycloakSession session, String realmName) {
+ RealmModel realm = session.realms().getRealmByName(realmName);
+ if (realm != null) {
+ session.realms().removeRealm(realm.getId());
}
- if (realmUser2 != null) {
- um.removeUser(realm, realmUser2);
- }
-
- currentSession.getContext().setRealm(realm);
- Assert.assertTrue(currentSession.realms().removeRealm(realm.getId()));
- assertThat(currentSession.realms().getRealm(realm.getId()), is(nullValue()));
}
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CredentialModelTest.java b/tests/base/src/test/java/org/keycloak/tests/model/CredentialModelTest.java
similarity index 83%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CredentialModelTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/CredentialModelTest.java
index 6efeebb5392..330fb00918c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/CredentialModelTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/CredentialModelTest.java
@@ -1,4 +1,4 @@
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
@@ -14,26 +14,25 @@ import org.keycloak.models.UserModel;
import org.keycloak.models.credential.OTPCredentialModel;
import org.keycloak.models.jpa.entities.CredentialEntity;
import org.keycloak.models.utils.KeycloakModelUtils;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
-import org.keycloak.testsuite.Assert;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.realm.RealmConfig;
+import org.keycloak.testframework.realm.RealmConfigBuilder;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
/**
* @author Marek Posolda
*/
-public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class CredentialModelTest {
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
+ @InjectRealm(config = CredentialModelRealm.class)
+ ManagedRealm realm;
- }
-
-
- @Test
- @ModelTest
+ @TestOnServer
public void testCredentialCRUD(KeycloakSession session) throws Exception {
AtomicReference passwordId = new AtomicReference<>();
AtomicReference otp1Id = new AtomicReference<>();
@@ -46,7 +45,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
UserModel user = currentSession.users().getUserByUsername(realm, "test-user@localhost");
List list = user.credentialManager().getStoredCredentialsStream()
.collect(Collectors.toList());
- Assert.assertEquals(1, list.size());
+ Assertions.assertEquals(1, list.size());
passwordId.set(list.get(0).getId());
// Create 2 OTP credentials (password was already created)
@@ -71,13 +70,13 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
assertOrder(list, passwordId.get(), otp1Id.get(), otp2Id.get());
// Assert can't move password when newPreviousCredential not found
- Assert.assertFalse(user.credentialManager().moveStoredCredentialTo(passwordId.get(), "not-known"));
+ Assertions.assertFalse(user.credentialManager().moveStoredCredentialTo(passwordId.get(), "not-known"));
// Assert can't move credential when not found
- Assert.assertFalse(user.credentialManager().moveStoredCredentialTo("not-known", otp2Id.get()));
+ Assertions.assertFalse(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), "not-known"));
// Move otp2 up 1 position
- Assert.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), passwordId.get()));
+ Assertions.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), passwordId.get()));
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession currentSession) -> {
@@ -91,7 +90,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
assertOrder(list, passwordId.get(), otp2Id.get(), otp1Id.get());
// Move otp2 to the top
- Assert.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), null));
+ Assertions.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), null));
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession currentSession) -> {
@@ -105,7 +104,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
assertOrder(list, otp2Id.get(), passwordId.get(), otp1Id.get());
// Move password down
- Assert.assertTrue(user.credentialManager().moveStoredCredentialTo(passwordId.get(), otp1Id.get()));
+ Assertions.assertTrue(user.credentialManager().moveStoredCredentialTo(passwordId.get(), otp1Id.get()));
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession currentSession) -> {
@@ -119,7 +118,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
assertOrder(list, otp2Id.get(), otp1Id.get(), passwordId.get());
// Remove otp2 down two positions
- Assert.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), passwordId.get()));
+ Assertions.assertTrue(user.credentialManager().moveStoredCredentialTo(otp2Id.get(), passwordId.get()));
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession currentSession) -> {
@@ -133,7 +132,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
assertOrder(list, otp1Id.get(), passwordId.get(), otp2Id.get());
// Remove password
- Assert.assertTrue(user.credentialManager().removeStoredCredentialById(passwordId.get()));
+ Assertions.assertTrue(user.credentialManager().removeStoredCredentialById(passwordId.get()));
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession currentSession) -> {
@@ -158,8 +157,7 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
}
}
- @Test
- @ModelTest
+ @TestOnServer
public void testCredentialUpdateWithDuplicateLabel(KeycloakSession session) {
AtomicReference otp1Id = new AtomicReference<>();
AtomicReference otp2Id = new AtomicReference<>();
@@ -209,14 +207,23 @@ public class CredentialModelTest extends AbstractTestRealmKeycloakTest {
}
-
private void assertOrder(List creds, String... expectedIds) {
- Assert.assertEquals(expectedIds.length, creds.size());
+ Assertions.assertEquals(expectedIds.length, creds.size());
if (creds.isEmpty()) return;
for (int i=0 ; iMarek Posolda
*/
-public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class MultipleRealmsTest {
+
+ @InjectRealm(attachTo = "master")
+ ManagedRealm realm;
private static final String REALM_ATTRIBUTE = "test-realm";
@@ -73,8 +77,7 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
session.getContext().setRealm(sessionRealm);
}
- @Test
- @ModelTest
+ @TestOnServer
public void testUsers(KeycloakSession session) {
AtomicReference r1user1Atomic = new AtomicReference<>();
@@ -99,7 +102,7 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
createObjects(currentSession, realm2);
UserModel r2user1 = currentSession.users().getUserByUsername(realm2, "user1");
- Assert.assertEquals(r1user1.getUsername(), r2user1.getUsername());
+ Assertions.assertEquals(r1user1.getUsername(), r2user1.getUsername());
// The following check is not valid anymore since file store does have the same ID, and is redundant due to the previous line
// Assert.assertNotEquals(r1user1.getId(), r2user1.getId());
@@ -107,14 +110,14 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
r1user1.credentialManager().updateCredential(UserCredentialModel.password("pass1"));
r2user1.credentialManager().updateCredential(UserCredentialModel.password("pass2"));
- Assert.assertTrue(r1user1.credentialManager().isValid(UserCredentialModel.password("pass1")));
- Assert.assertFalse(r1user1.credentialManager().isValid(UserCredentialModel.password("pass2")));
- Assert.assertFalse(r2user1.credentialManager().isValid(UserCredentialModel.password("pass1")));
- Assert.assertTrue(r2user1.credentialManager().isValid(UserCredentialModel.password("pass2")));
+ Assertions.assertTrue(r1user1.credentialManager().isValid(UserCredentialModel.password("pass1")));
+ Assertions.assertFalse(r1user1.credentialManager().isValid(UserCredentialModel.password("pass2")));
+ Assertions.assertFalse(r2user1.credentialManager().isValid(UserCredentialModel.password("pass1")));
+ Assertions.assertTrue(r2user1.credentialManager().isValid(UserCredentialModel.password("pass2")));
currentSession.getContext().setRealm(realm1);
// Test searching
- Assert.assertEquals(2, currentSession.users().searchForUserStream(realm1, Map.of(UserModel.SEARCH, "user")).count());
+ Assertions.assertEquals(2, currentSession.users().searchForUserStream(realm1, Map.of(UserModel.SEARCH, "user")).count());
return new String[]{id1, id2};
});
@@ -132,7 +135,7 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
currentSession.users().removeUser(realm1, r1user1);
UserModel user2 = currentSession.users().getUserByUsername(realm1, "user2");
currentSession.users().removeUser(realm1, user2);
- Assert.assertEquals(0, currentSession.users().searchForUserStream(realm1, Map.of(UserModel.SEARCH, "user")).count());
+ Assertions.assertEquals(0, currentSession.users().searchForUserStream(realm1, Map.of(UserModel.SEARCH, "user")).count());
UserModel user1 = currentSession.users().getUserByUsername(realm1, "user1");
UserManager um = new UserManager(currentSession);
@@ -146,7 +149,7 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
RealmModel realm2 = currentSession.realms().getRealm(id2);
currentSession.getContext().setRealm(realm2);
- Assert.assertEquals(2, currentSession.users().searchForUserStream(realm2, Map.of(UserModel.SEARCH, "user")).count());
+ Assertions.assertEquals(2, currentSession.users().searchForUserStream(realm2, Map.of(UserModel.SEARCH, "user")).count());
UserModel user1a = currentSession.users().getUserByUsername(realm2, "user1");
@@ -160,8 +163,7 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
removeRealm(session, id2);
}
- @Test
- @ModelTest
+ @TestOnServer
public void testGetById(KeycloakSession session) {
String[] res = KeycloakModelUtils.runJobInTransactionWithResult(session.getKeycloakSessionFactory(), (KeycloakSession sessionById) -> {
KeycloakSession currentSession = sessionById;
@@ -172,13 +174,13 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
String id1 = realm1.getId();
realm1.setDefaultRole(currentSession.roles().addRealmRole(realm1, Constants.DEFAULT_ROLES_ROLE_PREFIX + "-" + realm1.getName()));
createObjects(currentSession, realm1);
- Assert.assertEquals(realm1, currentSession.realms().getRealm(id1));
- Assert.assertEquals(realm1, currentSession.realms().getRealmByName("realm1"));
+ Assertions.assertEquals(realm1, currentSession.realms().getRealm(id1));
+ Assertions.assertEquals(realm1, currentSession.realms().getRealmByName("realm1"));
ClientModel r1app1 = realm1.getClientByClientId("app1");
- Assert.assertNotNull(realm1.getClientByClientId("app2"));
+ Assertions.assertNotNull(realm1.getClientByClientId("app2"));
- Assert.assertEquals(r1app1, realm1.getClientById(r1app1.getId()));
+ Assertions.assertEquals(r1app1, realm1.getClientById(r1app1.getId()));
assertThat(r1app1.getAttribute(REALM_ATTRIBUTE), is(realm1.getName()));
@@ -189,18 +191,18 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
realm2.setDefaultRole(currentSession.roles().addRealmRole(realm2, Constants.DEFAULT_ROLES_ROLE_PREFIX + "-" + realm2.getName()));
createObjects(currentSession, realm2);
- Assert.assertEquals(realm2, currentSession.realms().getRealm(id2));
- Assert.assertEquals(realm2, currentSession.realms().getRealmByName("realm2"));
+ Assertions.assertEquals(realm2, currentSession.realms().getRealm(id2));
+ Assertions.assertEquals(realm2, currentSession.realms().getRealmByName("realm2"));
- Assert.assertNotNull(realm2.getClientByClientId("app1"));
- Assert.assertNotNull(realm2.getClientByClientId("app2"));
+ Assertions.assertNotNull(realm2.getClientByClientId("app1"));
+ Assertions.assertNotNull(realm2.getClientByClientId("app2"));
ClientModel r2cl1 = realm2.getClientByClientId("cl1");
- Assert.assertEquals(r2cl1.getId(), realm2.getClientById(r2cl1.getId()).getId());
+ Assertions.assertEquals(r2cl1.getId(), realm2.getClientById(r2cl1.getId()).getId());
assertThat(r2cl1.getAttribute(REALM_ATTRIBUTE), is(realm2.getName()));
RoleModel r1App1Role = r1app1.getRole("app1Role1");
- Assert.assertEquals(r1App1Role, realm1.getRoleById(r1App1Role.getId()));
+ Assertions.assertEquals(r1App1Role, realm1.getRoleById(r1App1Role.getId()));
assertAttrRealm(realm1, r1App1Role.getAttributeStream(REALM_ATTRIBUTE));
RoleModel r2Role1 = realm2.getRole("role2");
@@ -247,7 +249,4 @@ public class MultipleRealmsTest extends AbstractTestRealmKeycloakTest {
}
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SimpleModelTest.java b/tests/base/src/test/java/org/keycloak/tests/model/SimpleModelTest.java
similarity index 59%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SimpleModelTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/SimpleModelTest.java
index 5bfdf48d2ea..c071e4d19c3 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SimpleModelTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/SimpleModelTest.java
@@ -15,47 +15,35 @@
* limitations under the License.
*/
-package org.keycloak.testsuite.model;
-
-import java.util.List;
+package org.keycloak.tests.model;
import org.keycloak.models.Constants;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.models.utils.KeycloakModelUtils;
-import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.services.managers.RealmManager;
-import org.keycloak.testsuite.AbstractKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
-import org.keycloak.testsuite.runonserver.RunOnServerException;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
-import org.junit.Assert;
-import org.junit.Test;
+import org.jboss.logging.Logger;
+import org.junit.jupiter.api.Assertions;
/**
* @author Marek Posolda
*/
-public class SimpleModelTest extends AbstractKeycloakTest {
+@KeycloakIntegrationTest
+public class SimpleModelTest {
- @Override
- public void addTestRealms(List testRealms) {
- }
+ private static final Logger log = Logger.getLogger(SimpleModelTest.class);
+ @InjectRealm(attachTo = "master")
+ ManagedRealm realm;
- @Test
- @ModelTest
- public void simpleModelTest(KeycloakSession session) {
- log.infof("simpleModelTest");
- RealmModel realm = session.realms().getRealmByName("master");
-
- Assert.assertNotNull("Master realm was not found!", realm);
- }
-
-
- @Test
- @ModelTest
+ @TestOnServer
public void simpleModelTestWithNestedTransactions(KeycloakSession session) {
- log.infof("simpleModelTestWithNestedTransactions");
+ log.debug("simpleModelTestWithNestedTransactions");
// Transaction 1
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession session1) -> {
@@ -69,7 +57,7 @@ public class SimpleModelTest extends AbstractKeycloakTest {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession session2) -> {
RealmModel realm = session2.realms().getRealmByName("foo");
- Assert.assertNotNull(realm);
+ Assertions.assertNotNull(realm);
session2.getContext().setRealm(realm);
realm.setAttribute("bar", "baz");
@@ -80,11 +68,11 @@ public class SimpleModelTest extends AbstractKeycloakTest {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession session3) -> {
RealmModel realm = session3.realms().getRealmByName("foo");
- Assert.assertNotNull(realm);
+ Assertions.assertNotNull(realm);
session3.getContext().setRealm(realm);
String attrValue = realm.getAttribute("bar");
- Assert.assertEquals("baz", attrValue);
+ Assertions.assertEquals("baz", attrValue);
realm.setAttribute("bar", "baz2");
@@ -95,34 +83,14 @@ public class SimpleModelTest extends AbstractKeycloakTest {
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), (KeycloakSession session4) -> {
RealmModel realm = session4.realms().getRealmByName("foo");
- Assert.assertNotNull(realm);
+ Assertions.assertNotNull(realm);
session4.getContext().setRealm(realm);
String attrValue = realm.getAttribute("bar");
- Assert.assertEquals("baz", attrValue);
+ Assertions.assertEquals("baz", attrValue);
new RealmManager(session4).removeRealm(realm);
});
}
-
- // Just for the test that AssertionError is correctly propagated
- @Test(expected = AssertionError.class)
- @ModelTest
- public void simpleModelTestWithAssertionError(KeycloakSession session) {
- log.infof("simpleModelTestWithAssertionError");
- RealmModel realm = session.realms().getRealmByName("masterr");
-
- // This should fail and throw the AssertionError
- Assert.assertNotNull("Master realm was not found!", realm);
- }
-
-
- // Just for the test that other exception is correctly propagated
- @Test(expected = RunOnServerException.class)
- @ModelTest
- public void simpleModelTestWithOtherError(KeycloakSession session) {
- log.infof("simpleModelTestWithOtherError");
- throw new RuntimeException("Some strange exception");
- }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SingleUseProviderTest.java b/tests/base/src/test/java/org/keycloak/tests/model/SingleUseProviderTest.java
similarity index 81%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SingleUseProviderTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/SingleUseProviderTest.java
index cb05da3f1d0..e485fc9ae6b 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/SingleUseProviderTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/SingleUseProviderTest.java
@@ -17,7 +17,7 @@
*
*/
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
import java.util.ArrayList;
import java.util.Collections;
@@ -29,27 +29,29 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.SingleUseObjectProvider;
import org.keycloak.models.utils.KeycloakModelUtils;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
-import org.junit.Assert;
-import org.junit.Test;
+import org.jboss.logging.Logger;
+import org.junit.jupiter.api.Assertions;
/**
* @author Marek Posolda
*/
-public class SingleUseProviderTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class SingleUseProviderTest {
+
+ private static final Logger logger = Logger.getLogger(SingleUseProviderTest.class);
private static final int ITEMS_COUNT = 100;
private static final int THREADS_COUNT = 20;
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
- }
+ @InjectRealm(attachTo = "master")
+ ManagedRealm realm;
- @Test
- @ModelTest
+ @TestOnServer
public void testConcurrentRemoveFromSingleUseCacheShouldFail(KeycloakSession session) throws Exception {
Map tracker = new ConcurrentHashMap<>();
@@ -94,12 +96,12 @@ public class SingleUseProviderTest extends AbstractTestRealmKeycloakTest {
// Check countSuccess and countFailures. For each key, only single successful "remove" is allowed. Other threads should fail to remove the item and nothing should be found
for (Map.Entry entry : tracker.entrySet()) {
- getLogger().info(entry.getKey() + ": " + entry.getValue());
+ logger.debug(entry.getKey() + ": " + entry.getValue());
}
for (Map.Entry entry : tracker.entrySet()) {
- Assert.assertEquals(1, entry.getValue().countSuccess.get());
- Assert.assertEquals(THREADS_COUNT - 1, entry.getValue().countFailures.get());
+ Assertions.assertEquals(1, entry.getValue().countSuccess.get());
+ Assertions.assertEquals(THREADS_COUNT - 1, entry.getValue().countFailures.get());
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/UserSessionProviderOfflineTest.java b/tests/base/src/test/java/org/keycloak/tests/model/UserSessionProviderOfflineTest.java
similarity index 82%
rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/UserSessionProviderOfflineTest.java
rename to tests/base/src/test/java/org/keycloak/tests/model/UserSessionProviderOfflineTest.java
index a2a47b5c359..0e29b87d36d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/model/UserSessionProviderOfflineTest.java
+++ b/tests/base/src/test/java/org/keycloak/tests/model/UserSessionProviderOfflineTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.keycloak.testsuite.model;
+package org.keycloak.tests.model;
import java.util.HashMap;
import java.util.HashSet;
@@ -35,59 +35,37 @@ import org.keycloak.models.UserModel;
import org.keycloak.models.UserSessionModel;
import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.protocol.oidc.OIDCLoginProtocol;
-import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.services.managers.ClientManager;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.managers.UserSessionManager;
-import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
-import org.keycloak.testsuite.arquillian.annotation.ModelTest;
+import org.keycloak.testframework.annotations.InjectRealm;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+import org.keycloak.testframework.injection.LifeCycle;
+import org.keycloak.testframework.realm.ManagedRealm;
+import org.keycloak.testframework.realm.RealmConfig;
+import org.keycloak.testframework.realm.RealmConfigBuilder;
+import org.keycloak.testframework.remote.annotations.TestOnServer;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author Marek Posolda
*/
-public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTest {
+@KeycloakIntegrationTest
+public class UserSessionProviderOfflineTest {
- @Before
- public void before() {
- testingClient.server("test").run(session ->
- reloadState(session, true));
+ @InjectRealm(config = UserSessionProviderOfflineRealm.class, lifecycle = LifeCycle.METHOD)
+ ManagedRealm managedRealm;
- }
-
- @After
- public void after() {
- testingClient.server("test").run(session -> {
- RealmModel realm = session.realms().getRealmByName("test");
- session.sessions().removeUserSessions(realm);
- UserModel user1 = session.users().getUserByUsername(realm, "user1");
- UserModel user2 = session.users().getUserByUsername(realm, "user2");
-
- UserManager um = new UserManager(session);
- if (user1 != null) {
- um.removeUser(realm, user1);
- }
- if (user2 != null) {
- um.removeUser(realm, user2);
- }
- });
- }
-
- @Test
- @ModelTest(realmName = "test")
+ @TestOnServer
public void testOfflineSessionsCrud(KeycloakSession session) {
Map> offlineSessions = new HashMap<>();
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), session.getContext(), currentSession -> {
// Create some online sessions in infinispan
- reloadState(currentSession);
createSessions(currentSession);
});
@@ -108,30 +86,30 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
// Assert all previously saved offline sessions found
for (Map.Entry> entry : offlineSessions.entrySet()) {
UserSessionModel offlineSession = sessionManager.findOfflineUserSession(realm, entry.getKey());
- Assert.assertNotNull(offlineSession);
- Assert.assertEquals(offlineSession.getAuthenticatedClientSessions().keySet(), entry.getValue());
+ Assertions.assertNotNull(offlineSession);
+ Assertions.assertEquals(offlineSession.getAuthenticatedClientSessions().keySet(), entry.getValue());
}
// Find clients with offline token
UserModel user1 = currentSession.users().getUserByUsername(realm, "user1");
Set clients = sessionManager.findClientsWithOfflineToken(realm, user1);
- Assert.assertEquals(2, clients.size());
+ Assertions.assertEquals(2, clients.size());
for (ClientModel client : clients) {
- Assert.assertTrue(client.getClientId().equals("test-app") || client.getClientId().equals("third-party"));
+ Assertions.assertTrue(client.getClientId().equals("test-app") || client.getClientId().equals("third-party"));
}
UserModel user2 = currentSession.users().getUserByUsername(realm, "user2");
clients = sessionManager.findClientsWithOfflineToken(realm, user2);
- Assert.assertEquals(1, clients.size());
- Assert.assertEquals("test-app", clients.iterator().next().getClientId());
+ Assertions.assertEquals(1, clients.size());
+ Assertions.assertEquals("test-app", clients.iterator().next().getClientId());
// Test count
ClientModel testApp = realm.getClientByClientId("test-app");
ClientModel thirdparty = realm.getClientByClientId("third-party");
- Assert.assertEquals(3, currentSession.sessions().getOfflineSessionsCount(realm, testApp));
- Assert.assertEquals(1, currentSession.sessions().getOfflineSessionsCount(realm, thirdparty));
+ Assertions.assertEquals(currentSession.sessions().getOfflineSessionsCount(realm, testApp), 3);
+ Assertions.assertEquals(currentSession.sessions().getOfflineSessionsCount(realm, thirdparty), 1);
// Revoke "test-app" for user1
sessionManager.revokeOfflineToken(user1, testApp);
});
@@ -145,19 +123,19 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
List thirdpartySessions = currentSession.sessions().getOfflineUserSessionsStream(realm, thirdparty, 0, 10)
.toList();
- Assert.assertEquals(1, thirdpartySessions.size());
- Assert.assertEquals("127.0.0.1", thirdpartySessions.get(0).getIpAddress());
- Assert.assertEquals("user1", thirdpartySessions.get(0).getUser().getUsername());
+ Assertions.assertEquals(1, thirdpartySessions.size());
+ Assertions.assertEquals("127.0.0.1", thirdpartySessions.get(0).getIpAddress());
+ Assertions.assertEquals("user1", thirdpartySessions.get(0).getUser().getUsername());
UserModel user1 = currentSession.users().getUserByUsername(realm, "user1");
UserModel user2 = currentSession.users().getUserByUsername(realm, "user2");
Set clients = sessionManager.findClientsWithOfflineToken(realm, user1);
- Assert.assertEquals(1, clients.size());
- Assert.assertEquals("third-party", clients.iterator().next().getClientId());
+ Assertions.assertEquals(1, clients.size());
+ Assertions.assertEquals("third-party", clients.iterator().next().getClientId());
clients = sessionManager.findClientsWithOfflineToken(realm, user2);
- Assert.assertEquals(1, clients.size());
- Assert.assertEquals("test-app", clients.iterator().next().getClientId());
+ Assertions.assertEquals(1, clients.size());
+ Assertions.assertEquals("test-app", clients.iterator().next().getClientId());
// Revoke the second currentSession for user1 too.
sessionManager.revokeOfflineToken(user1, thirdparty);
@@ -172,25 +150,24 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
ClientModel thirdparty = realm.getClientByClientId("third-party");
// Accurate count now. All sessions of user1 cleared
- Assert.assertEquals(1, currentSession.sessions().getOfflineSessionsCount(realm, testApp));
- Assert.assertEquals(0, currentSession.sessions().getOfflineSessionsCount(realm, thirdparty));
+ Assertions.assertEquals(currentSession.sessions().getOfflineSessionsCount(realm, testApp), 1);
+ Assertions.assertEquals(currentSession.sessions().getOfflineSessionsCount(realm, thirdparty), 0);
List testAppSessions = currentSession.sessions().getOfflineUserSessionsStream(realm, testApp, 0, 10)
.toList();
- Assert.assertEquals(1, testAppSessions.size());
- Assert.assertEquals("127.0.0.3", testAppSessions.get(0).getIpAddress());
- Assert.assertEquals("user2", testAppSessions.get(0).getUser().getUsername());
+ Assertions.assertEquals(1, testAppSessions.size());
+ Assertions.assertEquals("127.0.0.3", testAppSessions.get(0).getIpAddress());
+ Assertions.assertEquals("user2", testAppSessions.get(0).getUser().getUsername());
UserModel user1 = currentSession.users().getUserByUsername(realm, "user1");
Set clients = sessionManager.findClientsWithOfflineToken(realm, user1);
- Assert.assertEquals(0, clients.size());
+ Assertions.assertEquals(0, clients.size());
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testOnRealmRemoved(KeycloakSession session) {
AtomicReference userSessionID = new AtomicReference<>();
@@ -223,10 +200,10 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
createOfflineSessionIncludeClientSessions(currentSession, userSession);
UserSessionModel offlineUserSession = sessionManager.findOfflineUserSession(fooRealm, userSession.getId());
- Assert.assertEquals(1, offlineUserSession.getAuthenticatedClientSessions().size());
+ Assertions.assertEquals(1, offlineUserSession.getAuthenticatedClientSessions().size());
AuthenticatedClientSessionModel offlineClientSession = offlineUserSession.getAuthenticatedClientSessions().values().iterator().next();
- Assert.assertEquals("foo-app", offlineClientSession.getClient().getClientId());
- Assert.assertEquals("user3", offlineClientSession.getUserSession().getUser().getUsername());
+ Assertions.assertEquals("foo-app", offlineClientSession.getClient().getClientId());
+ Assertions.assertEquals("user3", offlineClientSession.getUserSession().getUser().getUsername());
});
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), currentSession -> {
@@ -248,7 +225,7 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
KeycloakModelUtils.runJobInTransaction(session.getKeycloakSessionFactory(), currentSession -> {
RealmModel fooRealm = currentSession.realms().getRealm(realmId);
currentSession.getContext().setRealm(fooRealm);
- Assert.assertEquals(0, currentSession.sessions().getOfflineSessionsCount(fooRealm, fooRealm.getClientByClientId("foo-app")));
+ Assertions.assertEquals(currentSession.sessions().getOfflineSessionsCount(fooRealm, fooRealm.getClientByClientId("foo-app")), 0);
// Cleanup
RealmManager realmMgr = new RealmManager(currentSession);
@@ -256,8 +233,7 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
});
}
- @Test
- @ModelTest
+ @TestOnServer
public void testOnClientRemoved(KeycloakSession session) {
AtomicReference userSessionID = new AtomicReference<>();
String realmId = KeycloakModelUtils.runJobInTransactionWithResult(session.getKeycloakSessionFactory(), currentSession -> {
@@ -316,8 +292,8 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
// Assert just one bar-app clientSession persisted now
UserSessionModel offlineSession = currentSession.sessions().getOfflineUserSession(fooRealm, userSessionID.get());
- Assert.assertEquals(1, offlineSession.getAuthenticatedClientSessions().size());
- Assert.assertEquals("bar-app", offlineSession.getAuthenticatedClientSessions().values().iterator().next().getClient().getClientId());
+ Assertions.assertEquals(1, offlineSession.getAuthenticatedClientSessions().size());
+ Assertions.assertEquals("bar-app", offlineSession.getAuthenticatedClientSessions().values().iterator().next().getClient().getClientId());
// Remove bar-app client
ClientModel client = fooRealm.getClientByClientId("bar-app");
@@ -330,7 +306,7 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
RealmModel fooRealm = realmMgr.getRealm(realmId);
currentSession.getContext().setRealm(fooRealm);
UserSessionModel offlineSession = currentSession.sessions().getOfflineUserSession(fooRealm, userSessionID.get());
- Assert.assertEquals(0, offlineSession.getAuthenticatedClientSessions().size());
+ Assertions.assertEquals(0, offlineSession.getAuthenticatedClientSessions().size());
});
} catch (Exception e) {
@@ -352,8 +328,7 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
}
}
- @Test
- @ModelTest
+ @TestOnServer
public void testOnUserRemoved(KeycloakSession session) {
AtomicReference userSessionID = new AtomicReference<>();
String realmId = KeycloakModelUtils.runJobInTransactionWithResult(session.getKeycloakSessionFactory(), currentSession -> {
@@ -441,7 +416,7 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
for (Map.Entry entry : session.getAuthenticatedClientSessions().entrySet()) {
String clientUUID = entry.getKey();
AuthenticatedClientSessionModel clientSession = entry.getValue();
- Assert.assertEquals(clientUUID, clientSession.getClient().getId());
+ Assertions.assertEquals(clientUUID, clientSession.getClient().getId());
}
}
@@ -470,20 +445,18 @@ public class UserSessionProviderOfflineTest extends AbstractTestRealmKeycloakTes
return sessions;
}
- public static void reloadState(KeycloakSession session) {
- reloadState(session, false);
- }
+ public static class UserSessionProviderOfflineRealm implements RealmConfig {
- public static void reloadState(KeycloakSession currentSession, Boolean initialConfig) {
- RealmModel realm = currentSession.realms().getRealmByName("test");
- if (initialConfig) {
- currentSession.users().addUser(realm, "user1").setEmail("user1@localhost");
- currentSession.users().addUser(realm, "user2").setEmail("user2@localhost");
+ @Override
+ public RealmConfigBuilder configure(RealmConfigBuilder realm) {
+ realm.name("test");
+ realm.addClient("test-app");
+ realm.addClient("third-party");
+ realm.addUser("user1").email("user1@localhost");
+ realm.addUser("user2").email("user2@localhost");
+ return realm;
}
- }
-
- @Override
- public void configureTestRealm(RealmRepresentation testRealm) {
}
+
}
diff --git a/tests/base/src/test/java/org/keycloak/tests/suites/Base2TestSuite.java b/tests/base/src/test/java/org/keycloak/tests/suites/Base2TestSuite.java
index dc4ba3af5fd..6c605bd28b5 100644
--- a/tests/base/src/test/java/org/keycloak/tests/suites/Base2TestSuite.java
+++ b/tests/base/src/test/java/org/keycloak/tests/suites/Base2TestSuite.java
@@ -13,6 +13,7 @@ import org.junit.platform.suite.api.Suite;
"org.keycloak.tests.i18n",
"org.keycloak.tests.infinispan",
"org.keycloak.tests.keys",
+ "org.keycloak.tests.model",
"org.keycloak.tests.oauth",
"org.keycloak.tests.tracing",
"org.keycloak.tests.transactions",