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 { ...@@ -55,6 +55,11 @@ class KeycloakUserPreconditionService {
return groupError; return groupError;
} }
if(!userEmailExists(user)) {
return Optional.of(String.format("User Email does not yet exist"));
}
return Optional.empty(); return Optional.empty();
} }
...@@ -78,4 +83,8 @@ class KeycloakUserPreconditionService { ...@@ -78,4 +83,8 @@ class KeycloakUserPreconditionService {
.map(groupName -> String.format("Group %s for realm %s does not exist yet", groupName, realm)) .map(groupName -> String.format("Group %s for realm %s does not exist yet", groupName, realm))
.findAny(); .findAny();
} }
boolean userEmailExists(OzgCloudKeycloakUser user) {
return !user.getSpec().getKeycloakUser().getEmail().isEmpty();
}
} }
...@@ -41,6 +41,7 @@ import org.mockito.Spy; ...@@ -41,6 +41,7 @@ import org.mockito.Spy;
import de.ozgcloud.operator.keycloak.KeycloakClient; import de.ozgcloud.operator.keycloak.KeycloakClient;
import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService; import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
import io.fabric8.kubernetes.api.model.Secret;
class KeycloakUserPreconditionServiceTest { class KeycloakUserPreconditionServiceTest {
...@@ -89,18 +90,54 @@ class KeycloakUserPreconditionServiceTest { ...@@ -89,18 +90,54 @@ class KeycloakUserPreconditionServiceTest {
assertThat(response).isPresent(); 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 @Test
void shouldReturnEmptyIfRealmExists() { void shouldReturnEmptyIfRealmExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
doReturn(true).when(service).userEmailExists(user);
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any()); doReturn(Optional.empty()).when(service).clientsExists(any(), any());
doReturn(Optional.empty()).when(service).groupsExists(any(), any()); doReturn(Optional.empty()).when(service).groupsExists(any(), any());
var response = service.getPreconditionErrors(OzgCloudKeycloakUserTestFactory.create()); var response = service.getPreconditionErrors(user);
assertThat(response).isEmpty(); 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 @Test
void shouldCheckIfKeycloakClientExists() { void shouldCheckIfKeycloakClientExists() {
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString()); doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
...@@ -144,6 +181,26 @@ class KeycloakUserPreconditionServiceTest { ...@@ -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 @Nested
class TestClientExists { class TestClientExists {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment