diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteService.java index 3bcbe7f12e5ee8c3a25071b404fd4d41eaceb1aa..0e003fe54a7c8be9b6f0f61bc1dd367b1c190f4c 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteService.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteService.java @@ -35,7 +35,12 @@ public class KeycloakGenericRemoteService { } public Optional<RealmRepresentation> getRealmRepresentation(String realmName) { - return Optional.of(keycloak.realm(realmName).toRepresentation()); + if (realmExists(realmName)) { + return Optional.of(keycloak.realm(realmName).toRepresentation()); + } else { + return Optional.empty(); + } + } public Optional<RoleRepresentation> getClientRole(String roleName, String realClientId, String realm) { diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java index 83e272054b12f9142ef8ecd826d8a829b0fdbfa8..26fe60961563fc06e02a8f0ae7ac5f368ddd8841 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/KeycloakGenericRemoteServiceTest.java @@ -198,13 +198,28 @@ class KeycloakGenericRemoteServiceTest { @BeforeEach void init() { + when(keycloak.realms()).thenReturn(realmsResource); + } + + @Test + void shouldGetRealmFromKeycloakWhenExist() { when(keycloak.realm(REALM)).thenReturn(realmResource); + when(service.realmExists(REALM)).thenReturn(true); when(realmResource.toRepresentation()).thenReturn(realmRepresentation); + + var realm = service.getRealmRepresentation(REALM); + + assertThat(realm).isNotEmpty().contains(realmRepresentation); } @Test - void shouldGetClientFromKeycloak() { - assertThat(Optional.of(keycloak.realm(REALM).toRepresentation())).isNotEmpty().contains(realmRepresentation); + void shouldNotGetRealmFromKeycloakWhenNotExist() { + + when(service.realmExists(REALM)).thenReturn(false); + + var realm = service.getRealmRepresentation(REALM); + + assertTrue(realm.isEmpty()); } } }