From bb198c19302309a471373868edbcf7feec833954 Mon Sep 17 00:00:00 2001 From: Lukas Hanusovsky <61745358+lhanusov@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:01:30 +0100 Subject: [PATCH] [Test framework MVP] RealmLocalizationResourceTest (#35145) Signed-off-by: Lukas Hanusovsky --- .../admin/RealmLocalizationResourceTest.java | 107 ++++++++++-------- 1 file changed, 61 insertions(+), 46 deletions(-) rename {testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite => tests/base/src/test/java/org/keycloak/test}/admin/RealmLocalizationResourceTest.java (51%) diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/RealmLocalizationResourceTest.java b/tests/base/src/test/java/org/keycloak/test/admin/RealmLocalizationResourceTest.java similarity index 51% rename from testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/RealmLocalizationResourceTest.java rename to tests/base/src/test/java/org/keycloak/test/admin/RealmLocalizationResourceTest.java index 29981bb3d87..127edfff7cb 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/RealmLocalizationResourceTest.java +++ b/tests/base/src/test/java/org/keycloak/test/admin/RealmLocalizationResourceTest.java @@ -15,56 +15,67 @@ * limitations under the License. */ -package org.keycloak.testsuite.admin; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +package org.keycloak.test.admin; +import jakarta.ws.rs.NotFoundException; import org.hamcrest.CoreMatchers; -import org.junit.Before; -import org.junit.Test; -import org.keycloak.admin.client.resource.RealmLocalizationResource; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.keycloak.representations.idm.RealmRepresentation; +import org.keycloak.test.framework.annotations.InjectRealm; +import org.keycloak.test.framework.annotations.KeycloakIntegrationTest; +import org.keycloak.test.framework.realm.ManagedRealm; import java.util.HashMap; import java.util.List; import java.util.Map; -import jakarta.ws.rs.NotFoundException; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +@KeycloakIntegrationTest +public class RealmLocalizationResourceTest { -public class RealmLocalizationResourceTest extends AbstractAdminTest { + @InjectRealm + private ManagedRealm realm; - private RealmLocalizationResource resource; + @BeforeEach + public void setupRealmLocale() { + RealmRepresentation rep = new RealmRepresentation(); + rep.setDefaultLocale("en"); + realm.admin().update(rep); - @Before - public void before() { - RealmRepresentation realmRepresentation = adminClient.realm(REALM_NAME).toRepresentation(); - realmRepresentation.setDefaultLocale("en"); - adminClient.realm(REALM_NAME).update(realmRepresentation); + realm.admin().localization().saveRealmLocalizationText("en", "key-a", "text-a_en"); + realm.admin().localization().saveRealmLocalizationText("en", "key-b", "text-b_en"); + realm.admin().localization().saveRealmLocalizationText("de", "key-a", "text-a_de"); + } - adminClient.realm(REALM_NAME).localization().saveRealmLocalizationText("en", "key-a", "text-a_en"); - adminClient.realm(REALM_NAME).localization().saveRealmLocalizationText("en", "key-b", "text-b_en"); - adminClient.realm(REALM_NAME).localization().saveRealmLocalizationText("de", "key-a", "text-a_de"); - - getCleanup().addLocalization("en"); - getCleanup().addLocalization("de"); - getCleanup().addLocalization("es"); - - resource = adminClient.realm(REALM_NAME).localization(); + @AfterEach + public void cleanupRealmLocale() { + if (realm.admin().localization().getRealmLocalizationTexts("en").size() > 0) { + realm.cleanup().add(r -> r.localization().deleteRealmLocalizationTexts("en")); + } + if (realm.admin().localization().getRealmLocalizationTexts("de").size() > 0) { + realm.cleanup().add(r -> r.localization().deleteRealmLocalizationTexts("de")); + } + if (realm.admin().localization().getRealmLocalizationTexts("es").size() > 0) { + realm.cleanup().add(r -> r.localization().deleteRealmLocalizationTexts("es")); + } } @Test public void getRealmSpecificLocales() { - List languages = resource.getRealmSpecificLocales(); + List languages = realm.admin().localization().getRealmSpecificLocales(); assertEquals(2, languages.size()); assertThat(languages, CoreMatchers.hasItems("en", "de")); } @Test public void getRealmLocalizationTexts() { - Map localizations = resource.getRealmLocalizationTexts("en"); + Map localizations = realm.admin().localization().getRealmLocalizationTexts("en"); assertNotNull(localizations); assertEquals(2, localizations.size()); @@ -74,7 +85,7 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { @Test public void getRealmLocalizationTextsWithFallback() { - Map localizations = resource.getRealmLocalizationTexts("de", true); + Map localizations = realm.admin().localization().getRealmLocalizationTexts("de", true); assertNotNull(localizations); assertEquals(2, localizations.size()); @@ -84,28 +95,30 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { @Test public void getRealmLocalizationsNotExists() { - Map localizations = resource.getRealmLocalizationTexts("zz"); + Map localizations = realm.admin().localization().getRealmLocalizationTexts("zz"); assertNotNull(localizations); assertEquals(0, localizations.size()); } @Test public void getRealmLocalizationText() { - String localizationText = resource.getRealmLocalizationText("en", "key-a"); + String localizationText = realm.admin().localization().getRealmLocalizationText("en", "key-a"); assertNotNull(localizationText); assertEquals("text-a_en", localizationText); } - @Test(expected = NotFoundException.class) + @Test public void getRealmLocalizationTextNotExists() { - resource.getRealmLocalizationText("en", "key-zz"); + assertThrows(NotFoundException.class, () -> { + realm.admin().localization().getRealmLocalizationText("en", "key-zz"); + }); } @Test public void addRealmLocalizationText() { - resource.saveRealmLocalizationText("en", "key-c", "text-c"); + realm.admin().localization().saveRealmLocalizationText("en", "key-c", "text-c"); - String localizationText = resource.getRealmLocalizationText("en", "key-c"); + String localizationText = realm.admin().localization().getRealmLocalizationText("en", "key-c"); assertNotNull(localizationText); assertEquals("text-c", localizationText); @@ -113,9 +126,9 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { @Test public void updateRealmLocalizationText() { - resource.saveRealmLocalizationText("en", "key-b", "text-b-new"); + realm.admin().localization().saveRealmLocalizationText("en", "key-b", "text-b-new"); - String localizationText = resource.getRealmLocalizationText("en", "key-b"); + String localizationText = realm.admin().localization().getRealmLocalizationText("en", "key-b"); assertNotNull(localizationText); assertEquals("text-b-new", localizationText); @@ -123,23 +136,25 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { @Test public void deleteRealmLocalizationText() { - resource.deleteRealmLocalizationText("en", "key-a"); + realm.admin().localization().deleteRealmLocalizationText("en", "key-a"); - Map localizations = resource.getRealmLocalizationTexts("en"); + Map localizations = realm.admin().localization().getRealmLocalizationTexts("en"); assertEquals(1, localizations.size()); assertEquals("text-b_en", localizations.get("key-b")); } - @Test(expected = NotFoundException.class) + @Test public void deleteRealmLocalizationTextNotExists() { - resource.deleteRealmLocalizationText("en", "zz"); + assertThrows(NotFoundException.class, () -> { + realm.admin().localization().deleteRealmLocalizationText("en", "zz"); + }); } @Test public void deleteRealmLocalizationTexts() { - resource.deleteRealmLocalizationTexts("en"); + realm.admin().localization().deleteRealmLocalizationTexts("en"); - List localizations = resource.getRealmSpecificLocales(); + List localizations = realm.admin().localization().getRealmSpecificLocales(); assertEquals(1, localizations.size()); assertThat(localizations, CoreMatchers.hasItems("de")); @@ -151,9 +166,9 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { newLocalizationTexts.put("key-a", "text-a_es"); newLocalizationTexts.put("key-b", "text-b_es"); - resource.createOrUpdateRealmLocalizationTexts("es", newLocalizationTexts); + realm.admin().localization().createOrUpdateRealmLocalizationTexts("es", newLocalizationTexts); - final Map persistedLocalizationTexts = resource.getRealmLocalizationTexts("es"); + final Map persistedLocalizationTexts = realm.admin().localization().getRealmLocalizationTexts("es"); assertEquals(newLocalizationTexts, persistedLocalizationTexts); } @@ -163,12 +178,12 @@ public class RealmLocalizationResourceTest extends AbstractAdminTest { newLocalizationTexts.put("key-b", "text-b_changed_en"); newLocalizationTexts.put("key-c", "text-c_en"); - resource.createOrUpdateRealmLocalizationTexts("en", newLocalizationTexts); + realm.admin().localization().createOrUpdateRealmLocalizationTexts("en", newLocalizationTexts); final Map expectedLocalizationTexts = new HashMap<>(); expectedLocalizationTexts.put("key-a", "text-a_en"); expectedLocalizationTexts.putAll(newLocalizationTexts); - final Map persistedLocalizationTexts = resource.getRealmLocalizationTexts("en"); + final Map persistedLocalizationTexts = realm.admin().localization().getRealmLocalizationTexts("en"); assertEquals(expectedLocalizationTexts, persistedLocalizationTexts); } }