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

OZG-6500 kc user precondition check user email

parent 2713b3d2
Branches
Tags
No related merge requests found
......@@ -55,6 +55,11 @@ class KeycloakUserPreconditionService {
return groupError;
}
if(!userEmailExists(user)) {
return Optional.of(String.format("User Email does not yet exist"));
}
return Optional.empty();
}
......@@ -78,4 +83,8 @@ class KeycloakUserPreconditionService {
.map(groupName -> String.format("Group %s for realm %s does not exist yet", groupName, realm))
.findAny();
}
boolean userEmailExists(OzgCloudKeycloakUser user) {
return !user.getSpec().getKeycloakUser().getEmail().isEmpty();
}
}
......@@ -41,6 +41,7 @@ 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 {
......@@ -89,18 +90,54 @@ class KeycloakUserPreconditionServiceTest {
assertThat(response).isPresent();
}
@Test
void shouldReturnErrorIfUserEmailNotExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).realmExists(REALM);
//doReturn(false).when(service).userEmailExists(user);
var response = service.getPreconditionErrors(user);
assertThat(response).isPresent();
}
@Test
void shouldReturnEmptyIfRealmExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).userEmailExists(user);
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any());
var response = service.getPreconditionErrors(OzgCloudKeycloakUserTestFactory.create());
var response = service.getPreconditionErrors(user);
assertThat(response).isEmpty();
}
@Test
void shouldReturnEmptyIfUserEmailExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).userEmailExists(user);
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any());
var response = service.getPreconditionErrors(user);
assertThat(response).isEmpty();
}
@Test
void shouldCheckUserEmailExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any());
service.getPreconditionErrors(user);
verify(service).userEmailExists(user);
}
@Test
void shouldCheckIfKeycloakClientExists() {
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
......@@ -144,6 +181,26 @@ class KeycloakUserPreconditionServiceTest {
}
}
@Nested
class TestUserEmailExists {
@Test
void shouldRespondUserEmailExists() {
var response = service.userEmailExists(OzgCloudKeycloakUserTestFactory.create());
assertThat(response).isTrue();
}
@Test
void shouldRespondUserEmailNotExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
user.getSpec().getKeycloakUser().setEmail("");
var response = service.userEmailExists(user);
assertThat(response).isFalse();
}
}
@Nested
class TestClientExists {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment