Skip to content
Snippets Groups Projects
Commit f3e0bf13 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6500 add junittests in KeycloakUserPreconditionServiceTest

parent 7f6de450
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,8 @@
package de.ozgcloud.operator.keycloak.user;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.stereotype.Component;
......@@ -55,7 +57,7 @@ class KeycloakUserPreconditionService {
return groupError;
}
if (!userEmailExists(user)) {
if (!userEmailExistsAndIsValidEmail(user)) {
return Optional.of(String.format("User Email does not yet exist"));
}
......@@ -83,7 +85,16 @@ class KeycloakUserPreconditionService {
.findAny();
}
boolean userEmailExists(OzgCloudKeycloakUser user) {
return !Optional.ofNullable(user.getSpec().getKeycloakUser().getEmail()).orElse("").isEmpty();
boolean userEmailExistsAndIsValidEmail(OzgCloudKeycloakUser user) {
String email = user.getSpec().getKeycloakUser().getEmail();
return !Optional.ofNullable(email).orElse("").isEmpty() && isValidEmail(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();
}
}
......@@ -104,7 +104,7 @@ class KeycloakUserPreconditionServiceTest {
@Test
void shouldReturnEmptyIfRealmExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).userEmailExists(user);
doReturn(true).when(service).userEmailExistsAndIsValidEmail(user);
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any());
......@@ -115,9 +115,9 @@ class KeycloakUserPreconditionServiceTest {
}
@Test
void shouldReturnEmptyIfUserEmailExists() {
void shouldReturnEmptyIfuserEmailExistsAndIsValidEmail() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).userEmailExists(user);
doReturn(true).when(service).userEmailExistsAndIsValidEmail(user);
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any());
......@@ -128,7 +128,7 @@ class KeycloakUserPreconditionServiceTest {
}
@Test
void shouldCheckUserEmailExists() {
void shouldCheckuserEmailExistsAndIsValidEmail() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
......@@ -136,7 +136,7 @@ class KeycloakUserPreconditionServiceTest {
service.getPreconditionErrors(user);
verify(service).userEmailExists(user);
verify(service).userEmailExistsAndIsValidEmail(user);
}
@Test
......@@ -183,12 +183,12 @@ class KeycloakUserPreconditionServiceTest {
}
@Nested
class TestUserEmailExists {
class TestuserEmailExistsAndIsValidEmail {
@Test
void shouldRespondUserEmailExists() {
void shouldResponduserEmailExistsAndIsValidEmail() {
var response = service.userEmailExists(OzgCloudKeycloakUserTestFactory.create());
var response = service.userEmailExistsAndIsValidEmail(OzgCloudKeycloakUserTestFactory.create());
assertThat(response).isTrue();
}
......@@ -197,7 +197,7 @@ class KeycloakUserPreconditionServiceTest {
void shouldRespondWhenUserEmailIsEmpty() {
var user = OzgCloudKeycloakUserTestFactory.create();
user.getSpec().getKeycloakUser().setEmail("");
var response = service.userEmailExists(user);
var response = service.userEmailExistsAndIsValidEmail(user);
assertThat(response).isFalse();
}
......@@ -206,10 +206,39 @@ class KeycloakUserPreconditionServiceTest {
void shouldRespondWhenUserEmailIsNull() {
var user = OzgCloudKeycloakUserTestFactory.create();
user.getSpec().getKeycloakUser().setEmail(null);
var response = service.userEmailExists(user);
var response = service.userEmailExistsAndIsValidEmail(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
......@@ -268,3 +297,4 @@ class KeycloakUserPreconditionServiceTest {
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment