diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java index 1ebad4e77971f32a056acae546f20bba726c4fd6..d57ef9c49f5d55ded30884f5bbfbb095e8e2edc2 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java @@ -43,22 +43,14 @@ class KeycloakRealmService { private final KeycloakGenericRemoteService keycloakGenericRemoteService; - void createRealm(OzgCloudKeycloakRealmSpec realm, String realmName) { - Optional.of(realm) - .map(mapper::map) - .map(realmRepresentation -> addRealmName(realmRepresentation, realmName)) - .filter(realmRepresentation -> !keycloakGenericRemoteService.realmExists(realmName)) - .ifPresent(remoteService::createRealm); - } - public void createOrUpdateRealm(OzgCloudKeycloakRealmSpec realm, String realmName) { keycloakGenericRemoteService.getRealmRepresentation(realmName) .ifPresentOrElse(existingRealm -> updateRealm(existingRealm, realm), () -> createRealm(realm, realmName)); + addOrUpdateRealmRoles(realm, realmName); } void updateRealm(RealmRepresentation existingRealm, OzgCloudKeycloakRealmSpec spec) { - try { LOG.debug("{}: Updating existing realm...", existingRealm); var realmRepresentation = mapper.update(existingRealm, spec); @@ -67,8 +59,14 @@ class KeycloakRealmService { LOG.warn(existingRealm + ": Updating existing realm failed: ", e); throw e; } - addOrUpdateRealmRoles(spec, existingRealm.getRealm()); + } + void createRealm(OzgCloudKeycloakRealmSpec realm, String realmName) { + Optional.of(realm) + .map(mapper::map) + .map(realmRepresentation -> addRealmName(realmRepresentation, realmName)) + .filter(realmRepresentation -> !keycloakGenericRemoteService.realmExists(realmName)) + .ifPresent(remoteService::createRealm); } void addOrUpdateRealmRoles(OzgCloudKeycloakRealmSpec spec, String realm) { 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 872e9bb98038c987f96d69aab2f25c4128ca0ee7..044c9f8880ef605b0f120514c8f856766d8c3aa6 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 @@ -92,6 +92,13 @@ class KeycloakRealmServiceTest { verify(keycloakGenericRemoteService).getRealmRepresentation(REALM_NAME); } + @Test + void shouldCallAddOrUpdateRealmRoles() { + service.createOrUpdateRealm(REALM, REALM_NAME); + + verify(service).addOrUpdateRealmRoles(REALM, REALM_NAME); + } + } @DisplayName("Update Realm") @@ -118,13 +125,6 @@ class KeycloakRealmServiceTest { verify(mapper).update(realmRepresentation, REALM); } - @Test - void shouldCallAddOrUpdateRealmRoles() { - - service.updateRealm(realmRepresentation, REALM); - - verify(service).addOrUpdateRealmRoles(REALM, realmRepresentation.getRealm()); - } }