From 7f6de4503693c2ad97b7ddf550b41ed0fd4c8240 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 2 Sep 2024 11:42:49 +0200 Subject: [PATCH] OZG-6500 kc user precondition check user email --- .../user/KeycloakUserPreconditionService.java | 5 ++-- .../KeycloakUserPreconditionServiceTest.java | 30 ++++++++++++++----- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java index d329c49..416801b 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionService.java @@ -55,11 +55,10 @@ class KeycloakUserPreconditionService { return groupError; } - if(!userEmailExists(user)) { + if (!userEmailExists(user)) { return Optional.of(String.format("User Email does not yet exist")); } - return Optional.empty(); } @@ -85,6 +84,6 @@ class KeycloakUserPreconditionService { } boolean userEmailExists(OzgCloudKeycloakUser user) { - return !user.getSpec().getKeycloakUser().getEmail().isEmpty(); + return !Optional.ofNullable(user.getSpec().getKeycloakUser().getEmail()).orElse("").isEmpty(); } } diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java index f12ddca..6a2bdf6 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserPreconditionServiceTest.java @@ -41,7 +41,6 @@ import org.mockito.Spy; import de.ozgcloud.operator.keycloak.KeycloakClient; import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService; -import io.fabric8.kubernetes.api.model.Secret; class KeycloakUserPreconditionServiceTest { @@ -90,12 +89,12 @@ class KeycloakUserPreconditionServiceTest { assertThat(response).isPresent(); } + @Test void shouldReturnErrorIfUserEmailNotExists() { var user = OzgCloudKeycloakUserTestFactory.create(); + user.getSpec().getKeycloakUser().setEmail(""); doReturn(true).when(service).realmExists(REALM); - //doReturn(false).when(service).userEmailExists(user); - var response = service.getPreconditionErrors(user); @@ -127,6 +126,7 @@ class KeycloakUserPreconditionServiceTest { assertThat(response).isEmpty(); } + @Test void shouldCheckUserEmailExists() { var user = OzgCloudKeycloakUserTestFactory.create(); @@ -138,6 +138,7 @@ class KeycloakUserPreconditionServiceTest { verify(service).userEmailExists(user); } + @Test void shouldCheckIfKeycloakClientExists() { doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); @@ -191,14 +192,24 @@ class KeycloakUserPreconditionServiceTest { assertThat(response).isTrue(); } + @Test - void shouldRespondUserEmailNotExists() { - var user = OzgCloudKeycloakUserTestFactory.create(); + void shouldRespondWhenUserEmailIsEmpty() { + var user = OzgCloudKeycloakUserTestFactory.create(); user.getSpec().getKeycloakUser().setEmail(""); var response = service.userEmailExists(user); assertThat(response).isFalse(); } + + @Test + void shouldRespondWhenUserEmailIsNull() { + var user = OzgCloudKeycloakUserTestFactory.create(); + user.getSpec().getKeycloakUser().setEmail(null); + var response = service.userEmailExists(user); + + assertThat(response).isFalse(); + } } @Nested @@ -236,7 +247,8 @@ class KeycloakUserPreconditionServiceTest { @Test void shouldReturnMissingGroup() { - when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false); + when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, + OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false); var rsp = service.getPreconditionErrors(user); @@ -245,8 +257,10 @@ class KeycloakUserPreconditionServiceTest { @Test void shouldReturnGroupExists() { - when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true); - when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_2, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true); + when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, + OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true); + when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_2, + OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(true); var rsp = service.getPreconditionErrors(user); -- GitLab