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 35dd7c9f23d09e97c2c78fc5f250d81ae6172b28..eb5ca4944d9df2355897eea04660a2a21c57bdaa 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 @@ -24,9 +24,8 @@ package de.ozgcloud.operator.keycloak.user; import java.util.Optional; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService; @@ -57,7 +56,7 @@ class KeycloakUserPreconditionService { return groupError; } - if (!userEmailExistsAndIsValidEmail(user)) { + if (!userHasEmail(user)) { return Optional.of(String.format("User Email does not yet exist")); } @@ -85,16 +84,9 @@ class KeycloakUserPreconditionService { .findAny(); } - boolean userEmailExistsAndIsValidEmail(OzgCloudKeycloakUser user) { + boolean userHasEmail(OzgCloudKeycloakUser user) { String email = user.getSpec().getKeycloakUser().getEmail(); - return !Optional.ofNullable(email).orElse("").isEmpty() && isValidEmail(email); + return !StringUtils.isEmpty(email); } - boolean isValidEmail(String email) { - String EMAIL_REGEX = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}$"; - Pattern EMAIL_PATTERN = Pattern.compile(EMAIL_REGEX); - - Matcher matcher = EMAIL_PATTERN.matcher(email); - return matcher.matches(); - } } 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 79cc3c0ab92b8efbff81eae3b442b34337bf7a8c..d3caf80edcbb17f9413ea836e7e34946145c6ba3 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 @@ -91,12 +91,12 @@ class KeycloakUserPreconditionServiceTest { } @Test - void shouldReturnErrorIfUserEmailNotExistsORIsNotValidEmail() { + void shouldReturnErrorIfUserDoesNotHaveEmail() { var user = OzgCloudKeycloakUserTestFactory.create(); doReturn(true).when(service).realmExists(REALM); doReturn(Optional.empty()).when(service).clientsExists(any(), any()); doReturn(Optional.empty()).when(service).groupsExists(any(), any()); - doReturn(false).when(service).userEmailExistsAndIsValidEmail(user); + doReturn(false).when(service).userHasEmail(user); var response = service.getPreconditionErrors(user); @@ -106,7 +106,7 @@ class KeycloakUserPreconditionServiceTest { @Test void shouldReturnEmptyIfRealmExists() { var user = OzgCloudKeycloakUserTestFactory.create(); - doReturn(true).when(service).userEmailExistsAndIsValidEmail(user); + doReturn(true).when(service).userHasEmail(user); doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); doReturn(Optional.empty()).when(service).clientsExists(any(), any()); doReturn(Optional.empty()).when(service).groupsExists(any(), any()); @@ -117,9 +117,9 @@ class KeycloakUserPreconditionServiceTest { } @Test - void shouldReturnEmptyIfuserEmailExistsAndIsValidEmail() { + void shouldReturnEmptyIfuserHasEmail() { var user = OzgCloudKeycloakUserTestFactory.create(); - doReturn(true).when(service).userEmailExistsAndIsValidEmail(user); + doReturn(true).when(service).userHasEmail(user); doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); doReturn(Optional.empty()).when(service).clientsExists(any(), any()); doReturn(Optional.empty()).when(service).groupsExists(any(), any()); @@ -130,7 +130,7 @@ class KeycloakUserPreconditionServiceTest { } @Test - void shouldCheckuserEmailExistsAndIsValidEmail() { + void shouldCheckuserHasEmail() { var user = OzgCloudKeycloakUserTestFactory.create(); doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); doReturn(Optional.empty()).when(service).clientsExists(any(), any()); @@ -138,7 +138,7 @@ class KeycloakUserPreconditionServiceTest { service.getPreconditionErrors(user); - verify(service).userEmailExistsAndIsValidEmail(user); + verify(service).userHasEmail(user); } @Test @@ -185,12 +185,11 @@ class KeycloakUserPreconditionServiceTest { } @Nested - class TestuserEmailExistsAndIsValidEmail { + class TestuserHasEmail { @Test - void shouldResponduserEmailExistsAndIsValidEmail() { - - var response = service.userEmailExistsAndIsValidEmail(OzgCloudKeycloakUserTestFactory.create()); + void shouldResponduserHasEmail() { + var response = service.userHasEmail(OzgCloudKeycloakUserTestFactory.create()); assertThat(response).isTrue(); } @@ -199,7 +198,7 @@ class KeycloakUserPreconditionServiceTest { void shouldRespondWhenUserEmailIsEmpty() { var user = OzgCloudKeycloakUserTestFactory.create(); user.getSpec().getKeycloakUser().setEmail(""); - var response = service.userEmailExistsAndIsValidEmail(user); + var response = service.userHasEmail(user); assertThat(response).isFalse(); } @@ -208,41 +207,11 @@ class KeycloakUserPreconditionServiceTest { void shouldRespondWhenUserEmailIsNull() { var user = OzgCloudKeycloakUserTestFactory.create(); user.getSpec().getKeycloakUser().setEmail(null); - var response = service.userEmailExistsAndIsValidEmail(user); + var response = service.userHasEmail(user); assertThat(response).isFalse(); } - @Test - void shouldCallIsValidEmail() { - var user = OzgCloudKeycloakUserTestFactory.create(); - service.userEmailExistsAndIsValidEmail(user); - - verify(service).isValidEmail(user.getSpec().getKeycloakUser().getEmail()); - } - - @Nested - class TestIsValidEmail { - @Test - void shouldRespondWhenUserEmailIsInvalid() { - var user = OzgCloudKeycloakUserTestFactory.create(); - user.getSpec().getKeycloakUser().setEmail("@domain.com"); - var response = service.userEmailExistsAndIsValidEmail(user); - - assertThat(response).isFalse(); - } - - @Test - void shouldRespondWhenUserEmailIsValid() { - var user = OzgCloudKeycloakUserTestFactory.create(); - user.getSpec().getKeycloakUser().setEmail("test@domain.com"); - var response = service.userEmailExistsAndIsValidEmail(user); - - assertThat(response).isTrue(); - } - - } - @Nested class TestClientExists {