[Test framework MVP] RealmLocalizationResourceTest (#35145)

Signed-off-by: Lukas Hanusovsky <lhanusov@redhat.com>
This commit is contained in:
Lukas Hanusovsky
2024-11-21 13:01:30 +01:00
committed by GitHub
parent 245498c0cb
commit bb198c1930

View File

@@ -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<String> languages = resource.getRealmSpecificLocales();
List<String> languages = realm.admin().localization().getRealmSpecificLocales();
assertEquals(2, languages.size());
assertThat(languages, CoreMatchers.hasItems("en", "de"));
}
@Test
public void getRealmLocalizationTexts() {
Map<String, String> localizations = resource.getRealmLocalizationTexts("en");
Map<String, String> 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<String, String> localizations = resource.getRealmLocalizationTexts("de", true);
Map<String, String> 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<String, String> localizations = resource.getRealmLocalizationTexts("zz");
Map<String, String> 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<String, String> localizations = resource.getRealmLocalizationTexts("en");
Map<String, String> 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<String> localizations = resource.getRealmSpecificLocales();
List<String> 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<String, String> persistedLocalizationTexts = resource.getRealmLocalizationTexts("es");
final Map<String, String> 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<String, String> expectedLocalizationTexts = new HashMap<>();
expectedLocalizationTexts.put("key-a", "text-a_en");
expectedLocalizationTexts.putAll(newLocalizationTexts);
final Map<String, String> persistedLocalizationTexts = resource.getRealmLocalizationTexts("en");
final Map<String, String> persistedLocalizationTexts = realm.admin().localization().getRealmLocalizationTexts("en");
assertEquals(expectedLocalizationTexts, persistedLocalizationTexts);
}
}