Skip to content

Commit 1545b32

Browse files
vramikahus1
authored andcommitted
Revert changes related to map store in test classes in base testsuite
Closes keycloak#24567 Signed-off-by: VR <[email protected]>
1 parent e6095f9 commit 1545b32

33 files changed

+67
-353
lines changed

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ModelTestExecutor.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,18 @@ public void execute(LocalExecutionEvent event) throws Exception {
4949
super.execute(event);
5050
} else {
5151
TestResult result = new TestResult();
52-
if (annotation.skipForMapStorage()) {
53-
result = TestResult.skipped();
54-
}
55-
else {
56-
try {
57-
// Model test - wrap the call inside the
58-
TestContext ctx = testContext.get();
59-
KeycloakTestingClient testingClient = ctx.getTestingClient();
60-
testingClient.server().runModelTest(testMethod.getDeclaringClass().getName(), testMethod.getName());
52+
try {
53+
// Model test - wrap the call inside the
54+
TestContext ctx = testContext.get();
55+
KeycloakTestingClient testingClient = ctx.getTestingClient();
56+
testingClient.server().runModelTest(testMethod.getDeclaringClass().getName(), testMethod.getName());
6157

62-
result.setStatus(TestResult.Status.PASSED);
63-
} catch (Throwable e) {
64-
result.setStatus(TestResult.Status.FAILED);
65-
result.setThrowable(e);
66-
} finally {
67-
result.setEnd(System.currentTimeMillis());
68-
}
58+
result.setStatus(TestResult.Status.PASSED);
59+
} catch (Throwable e) {
60+
result.setStatus(TestResult.Status.FAILED);
61+
result.setThrowable(e);
62+
} finally {
63+
result.setEnd(System.currentTimeMillis());
6964
}
7065

7166
// Need to use reflection this way...

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/annotation/ModelTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,4 @@
3333
@Retention(RUNTIME)
3434
@Target({ElementType.METHOD}) // TODO: Maybe ElementClass.TYPE too? That way it will be possible to add the annotation on the the test class and not need to add on all the test methods inside the class
3535
public @interface ModelTest {
36-
37-
boolean skipForMapStorage() default false;
3836
}

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/AbstractQuarkusDeployableContainer.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,10 @@ protected List<String> getArgs(Map<String, String> env) {
194194
commands.removeIf("--optimized"::equals);
195195
commands.add("--http-relative-path=/auth");
196196

197-
if (!storeProvider.isMapStore()) {
198-
if ("local".equals(cacheMode)) {
199-
commands.add("--cache=local");
200-
} else {
201-
commands.add("--cache-config-file=cluster-" + cacheMode + ".xml");
202-
}
197+
if ("local".equals(cacheMode)) {
198+
commands.add("--cache=local");
199+
} else {
200+
commands.add("--cache-config-file=cluster-" + cacheMode + ".xml");
203201
}
204202

205203
if (configuration.getFipsMode() != FipsMode.DISABLED) {

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakContainerEventsController.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252

5353
import java.io.File;
5454
import java.io.IOException;
55-
import java.util.Arrays;
5655

5756
import org.jboss.shrinkwrap.api.Archive;
5857

@@ -139,10 +138,6 @@ protected void beforeNewContainerStart(RestartContainer restartContainer) {
139138
if (restartContainer.withoutKeycloakAddUserFile()) {
140139
removeKeycloakAddUserFile();
141140
}
142-
143-
if (restartContainer.initializeDatabase()) {
144-
clearMapStorageFiles();
145-
}
146141
}
147142

148143
/**
@@ -202,17 +197,6 @@ private void deployAndDropAllTables(RestartContainer restartContainer) {
202197

203198
}
204199

205-
private void clearMapStorageFiles() {
206-
String filePath = System.getProperty("project.build.directory", "target/map");
207-
208-
File f = new File(filePath);
209-
if (!f.exists()) return;
210-
211-
Arrays.stream(f.listFiles())
212-
.filter(file -> file.getName().startsWith("map-") && file.getName().endsWith(".json"))
213-
.forEach(File::delete);
214-
}
215-
216200
/**
217201
* Copy keycloak-add-user.json only if it is jboss container (has jbossHome property).
218202
*/

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/containers/KeycloakQuarkusServerDeployableContainer.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,7 @@ private Process startContainer() throws IOException {
147147
builder.environment().put("JAVA_OPTS", javaOpts);
148148
}
149149

150-
final StoreProvider storeProvider = StoreProvider.getCurrentProvider();
151-
final boolean isJpaStore = storeProvider.equals(StoreProvider.JPA) || storeProvider.equals(StoreProvider.LEGACY);
152-
153-
if (!isJpaStore) {
150+
if (!StoreProvider.JPA.equals(StoreProvider.getCurrentProvider())) {
154151
builder.environment().put("KEYCLOAK_ADMIN", "admin");
155152
builder.environment().put("KEYCLOAK_ADMIN_PASSWORD", "admin");
156153
}

testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/model/StoreProvider.java

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.keycloak.utils.StringUtil;
2121

2222
import java.util.ArrayList;
23-
import java.util.Arrays;
2423
import java.util.Collections;
2524
import java.util.List;
2625
import java.util.Optional;
@@ -29,38 +28,7 @@
2928
* @author <a href="mailto:[email protected]">Martin Bartos</a>
3029
*/
3130
public enum StoreProvider {
32-
CHM("chm") {
33-
@Override
34-
public void addStoreOptions(List<String> commands) {
35-
commands.add("--storage=" + getAlias());
36-
}
37-
},
38-
FILE("file") {
39-
@Override
40-
public void addStoreOptions(List<String> commands) {
41-
commands.add("--storage=" + getAlias());
42-
}
43-
},
4431
JPA("jpa") {
45-
@Override
46-
public void addStoreOptions(List<String> commands) {
47-
commands.add("--storage=" + getAlias());
48-
getDbVendor().ifPresent(vendor -> commands.add("--storage-jpa-db=" + vendor));
49-
commands.add("--db-url=" + System.getProperty("keycloak.map.storage.connectionsJpa.url"));
50-
commands.add("--db-username=" + System.getProperty("keycloak.map.storage.connectionsJpa.user"));
51-
commands.add("--db-password=" + System.getProperty("keycloak.map.storage.connectionsJpa.password"));
52-
}
53-
},
54-
HOTROD("hotrod") {
55-
@Override
56-
public void addStoreOptions(List<String> commands) {
57-
commands.add("--storage=" + getAlias());
58-
commands.add("--storage-hotrod-host=" + System.getProperty("keycloak.connectionsHotRod.host"));
59-
commands.add("--storage-hotrod-username=" + System.getProperty("keycloak.connectionsHotRod.username", "admin"));
60-
commands.add("--storage-hotrod-password=" + System.getProperty("keycloak.connectionsHotRod.password", "admin"));
61-
}
62-
},
63-
LEGACY("legacy") {
6432
@Override
6533
public void addStoreOptions(List<String> commands) {
6634
getDbVendor().ifPresent(vendor -> commands.add("--db=" + vendor));
@@ -92,7 +60,6 @@ public void addStoreOptions(List<String> commands) {
9260
}
9361
};
9462

95-
public static final String AUTH_SERVER_QUARKUS_MAP_STORAGE_PROFILE = "auth.server.quarkus.mapStorage.profile.config";
9663
public static final String DB_VENDOR_PROPERTY = "keycloak.storage.connections.vendor";
9764

9865
private final String alias;
@@ -116,32 +83,11 @@ public String getAlias() {
11683
return alias;
11784
}
11885

119-
public boolean isLegacyStore() {
120-
return this.equals(LEGACY);
121-
}
122-
123-
public boolean isMapStore() {
124-
return !isLegacyStore() && !this.equals(DEFAULT);
125-
}
126-
12786
public static Optional<String> getDbVendor() {
12887
return Optional.ofNullable(System.getProperty(DB_VENDOR_PROPERTY)).filter(StringUtil::isNotBlank);
12988
}
13089

13190
public static StoreProvider getCurrentProvider() {
132-
return getProviderByAlias(System.getProperty(AUTH_SERVER_QUARKUS_MAP_STORAGE_PROFILE, ""));
133-
}
134-
135-
/**
136-
* Get Store Provider by alias
137-
*
138-
* @param alias alias
139-
* @return store provider, LEGACY when vendor is specified, otherwise DEFAULT
140-
*/
141-
public static StoreProvider getProviderByAlias(String alias) {
142-
return Arrays.stream(StoreProvider.values())
143-
.filter(f -> f.getAlias().equals(alias))
144-
.findFirst()
145-
.orElseGet(() -> getDbVendor().isEmpty() ? DEFAULT : LEGACY);
91+
return getDbVendor().isEmpty() ? DEFAULT : JPA;
14692
}
14793
}

testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractKeycloakTest.java

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,9 @@
3737
import org.keycloak.admin.client.resource.UsersResource;
3838
import org.keycloak.common.util.KeycloakUriBuilder;
3939
import org.keycloak.common.util.Time;
40-
import org.keycloak.models.RealmProvider;
41-
import org.keycloak.models.cache.CacheRealmProvider;
4240
import org.keycloak.models.cache.UserCache;
4341
import org.keycloak.models.utils.TimeBasedOTP;
4442
import org.keycloak.protocol.oidc.OIDCAdvancedConfigWrapper;
45-
import org.keycloak.provider.Provider;
4643
import org.keycloak.representations.idm.ClientRepresentation;
4744
import org.keycloak.representations.idm.RealmRepresentation;
4845
import org.keycloak.representations.idm.RequiredActionProviderRepresentation;
@@ -743,39 +740,4 @@ protected static InputStream httpsAwareConfigurationStream(InputStream input) th
743740
}
744741
return in;
745742
}
746-
747-
/**
748-
* MapRealmProvider uses session.invalidate() instead of calling e.g.
749-
* session.clients().removeClients(realm); for clients (where clients are being removed one by one)
750-
*
751-
* Therefore it doesn't call session.users().preRemove(realm, client) for each client.
752-
* Due to that JpaUserFederatedStorageProvider.preRemove(realm, client) is not called.
753-
* So there remains objects in the database in user federation related tables after realm removal.
754-
*
755-
* Same for roles etc.
756-
*
757-
* Legacy federated storage is NOT supposed to work with map storage, so this method
758-
* returns true if realm provider is "jpa" to be able to skip particular tests.
759-
*/
760-
protected boolean isJpaRealmProvider() {
761-
return keycloakUsingProviderWithId(RealmProvider.class, "jpa");
762-
}
763-
764-
protected boolean keycloakUsingProviderWithId(Class<? extends Provider> providerClass, String requiredId) {
765-
String providerId = testingClient.server()
766-
.fetchString(s -> s.getKeycloakSessionFactory().getProviderFactory(providerClass).getId());
767-
return Objects.equals(providerId, "\"" + requiredId + "\"");
768-
}
769-
770-
protected boolean isRealmCacheEnabled() {
771-
String realmCache = testingClient.server()
772-
.fetchString(s -> s.getKeycloakSessionFactory().getProviderFactory(CacheRealmProvider.class));
773-
return Objects.nonNull(realmCache);
774-
}
775-
776-
protected boolean isUserCacheEnabled() {
777-
String userCache = testingClient.server()
778-
.fetchString(s -> s.getKeycloakSessionFactory().getProviderFactory(UserCache.class));
779-
return Objects.nonNull(userCache);
780-
}
781743
}

testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/PermissionsTest.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -392,20 +392,9 @@ public void invoke(RealmResource realm, AtomicReference<Response> response) {
392392
}
393393
}, Resource.REALM, true);
394394

395-
if (isJpaRealmProvider()) {
396-
// Caching is disabled with the new store, we need to skip these invocations
397-
invoke(new Invocation() {
398-
public void invoke(RealmResource realm) {
399-
realm.clearRealmCache();
400-
}
401-
}, Resource.REALM, true);
402-
invoke(new Invocation() {
403-
public void invoke(RealmResource realm) {
404-
realm.clearUserCache();
405-
}
406-
}, Resource.REALM, true);
395+
invoke(RealmResource::clearRealmCache, Resource.REALM, true);
396+
invoke(RealmResource::clearUserCache, Resource.REALM, true);
407397

408-
}
409398
// Delete realm
410399
invoke(new Invocation() {
411400
public void invoke(RealmResource realm) {

testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ServerInfoTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,9 @@ public void testServerInfo() {
8888
assertNotNull(info.getSystemInfo().getServerTime());
8989
assertNotNull(info.getSystemInfo().getUptime());
9090

91-
if (isJpaRealmProvider()) {
92-
Map<String, ProviderRepresentation> jpaProviders = info.getProviders().get("connectionsJpa").getProviders();
93-
ProviderRepresentation jpaProvider = jpaProviders.values().iterator().next();
94-
log.infof("JPA Connections provider info: %s", jpaProvider.getOperationalInfo());
95-
}
91+
Map<String, ProviderRepresentation> jpaProviders = info.getProviders().get("connectionsJpa").getProviders();
92+
ProviderRepresentation jpaProvider = jpaProviders.values().iterator().next();
93+
log.infof("JPA Connections provider info: %s", jpaProvider.getOperationalInfo());
9694
}
9795

9896
@Override

testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/UsersTest.java

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -99,50 +99,6 @@ public void searchUserMatchUsersCount() {
9999
assertThat(users.get(0).getUsername(), is("john.doe"));
100100
}
101101

102-
@Test
103-
public void searchUserCaseSensitiveFirst() throws Exception {
104-
Assume.assumeFalse(isJpaRealmProvider());
105-
Map<String, String> attributes = new HashMap<>();
106-
attributes.put(Constants.REALM_ATTR_USERNAME_CASE_SENSITIVE, "true");
107-
try (AutoCloseable c = new RealmAttributeUpdater(adminClient.realm(REALM_NAME))
108-
.updateWith(r -> r.setAttributes(attributes))
109-
.update()) {
110-
111-
createUser(REALM_NAME, "User", "password", "firstName", "lastName", "[email protected]");
112-
113-
assertCaseSensitiveSearch();
114-
115-
RealmRepresentation realmRep = adminClient.realm(REALM_NAME).toRepresentation();
116-
RealmBuilder.edit(realmRep)
117-
.attribute(Constants.REALM_ATTR_USERNAME_CASE_SENSITIVE, "false");
118-
realm.update(realmRep);
119-
120-
assertCaseInsensitiveSearch();
121-
}
122-
}
123-
124-
@Test
125-
public void searchUserCaseInSensitiveFirst() throws Exception {
126-
Assume.assumeFalse(isJpaRealmProvider());
127-
Map<String, String> attributes = new HashMap<>();
128-
attributes.put(Constants.REALM_ATTR_USERNAME_CASE_SENSITIVE, "false");
129-
try (AutoCloseable c = new RealmAttributeUpdater(adminClient.realm(REALM_NAME))
130-
.updateWith(r -> r.setAttributes(attributes))
131-
.update()) {
132-
133-
createUser(REALM_NAME, "User", "password", "firstName", "lastName", "[email protected]");
134-
135-
assertCaseInsensitiveSearch();
136-
137-
RealmRepresentation realmRep = adminClient.realm(REALM_NAME).toRepresentation();
138-
RealmBuilder.edit(realmRep)
139-
.attribute(Constants.REALM_ATTR_USERNAME_CASE_SENSITIVE, "true");
140-
realm.update(realmRep);
141-
142-
assertCaseSensitiveSearch();
143-
}
144-
}
145-
146102
/**
147103
* https://issues.redhat.com/browse/KEYCLOAK-15146
148104
*/
@@ -487,18 +443,4 @@ private void assertCaseInsensitiveSearch() {
487443
assertThat(realm.users().search("USER", true), hasSize(1));
488444
assertThat(realm.users().search("Use", true), hasSize(0));
489445
}
490-
491-
private void assertCaseSensitiveSearch() {
492-
// not-exact case-sensitive search
493-
assertThat(realm.users().search("user"), hasSize(0));
494-
assertThat(realm.users().search("User"), hasSize(1));
495-
assertThat(realm.users().search("USER"), hasSize(0));
496-
assertThat(realm.users().search("Use"), hasSize(1));
497-
498-
// exact case-sensitive search
499-
assertThat(realm.users().search("user", true), hasSize(0));
500-
assertThat(realm.users().search("User", true), hasSize(1));
501-
assertThat(realm.users().search("USER", true), hasSize(0));
502-
assertThat(realm.users().search("Use", true), hasSize(0));
503-
}
504446
}

0 commit comments

Comments
 (0)