From be665a3dec62947e437e8c129eb69cc586f8aea0 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 11 Jun 2024 18:34:32 +0200 Subject: [PATCH] OZG-5400 add unittests for realm update --- .../realm/KeycloakRealmReconcilerTest.java | 2 +- .../realm/KeycloakRealmServiceTest.java | 63 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java index 0ede579..f267eb4 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java @@ -51,7 +51,7 @@ class KeycloakRealmReconcilerTest { class TestReconcile { @Test - void shouldCallServiceAddRealm() { + void shouldCallServiceCreateOrUpdateRealm() { OzgCloudKeycloakRealm realm = OzgCloudKeycloakRealmTestFactory.create(); reconciler.reconcile(realm, null); diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java index 529dd38..c0f0f3c 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java @@ -26,20 +26,28 @@ package de.ozgcloud.operator.keycloak.realm; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import java.util.Optional; + import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.keycloak.representations.idm.ClientRepresentation; import org.keycloak.representations.idm.RealmRepresentation; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService; +import de.ozgcloud.operator.keycloak.client.ClientRepresentationTestFactory; +import de.ozgcloud.operator.keycloak.client.OzgCloudKeycloakClientSpecTestFactory; + class KeycloakRealmServiceTest { private static final OzgCloudKeycloakRealmSpec REALM = OzgCloudKeycloakRealmSpecTestFactory.create(); private static final String REALM_NAME = "TestRealmName"; + private static final String TEST_NAMESPACE = "TestNamespace"; @Spy @InjectMocks @@ -57,6 +65,61 @@ class KeycloakRealmServiceTest { @Mock private KeycloakGenericRemoteService keycloakGenericRemoteService; + + + + @Nested + class TestCreanOrUpdateRealm { + + @Test + void shouldCallCreateRealmMethodIfNotExists() { + + when(keycloakGenericRemoteService.getRealmRepresentation(REALM_NAME)).thenReturn(Optional.empty()); + + service.createOrUpdateRealm(REALM, REALM_NAME); + + verify(service).createRealm(REALM, REALM_NAME); + } + + @Test + void shouldCallUpdateRealmIfAlreadyExists() { + var existingRealm = RealmRepresentationTestFactory.create(); + when(keycloakGenericRemoteService.getRealmRepresentation(REALM_NAME)).thenReturn(Optional.of(existingRealm)); + + service.createOrUpdateRealm(REALM, REALM_NAME); + + verify(service).updateRealm(existingRealm, REALM); + } + } + + + @DisplayName("Update Realm") + @Nested + class TestUpdateRealm { + + @BeforeEach + void init() { + when(mapper.update(any(), any())).thenReturn(realmRepresentation); + } + + @Test + void shouldUpdateRealmIfExists() { + service.updateRealm(realmRepresentation, REALM); + + verify(remoteService).updateRealm(realmRepresentation); + } + + @Test + void shouldCallMapper() { + + service.updateRealm(realmRepresentation, REALM); + + verify(mapper).update(realmRepresentation, REALM); + } + + } + + @Nested class TestCreateRealm { -- GitLab