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

Merge branch 'master' into OZG-6472

parents 776553f6 a228779d
Branches
Tags
No related merge requests found
......@@ -25,6 +25,7 @@ package de.ozgcloud.operator.keycloak.user;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
......@@ -55,6 +56,10 @@ class KeycloakUserPreconditionService {
return groupError;
}
if (!userHasEmail(user)) {
return Optional.of(String.format("User Email does not yet exist"));
}
return Optional.empty();
}
......@@ -78,4 +83,10 @@ class KeycloakUserPreconditionService {
.map(groupName -> String.format("Group %s for realm %s does not exist yet", groupName, realm))
.findAny();
}
boolean userHasEmail(OzgCloudKeycloakUser user) {
String email = user.getSpec().getKeycloakUser().getEmail();
return !StringUtils.isEmpty(email);
}
}
......@@ -90,17 +90,57 @@ class KeycloakUserPreconditionServiceTest {
assertThat(response).isPresent();
}
@Test
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).userHasEmail(user);
var response = service.getPreconditionErrors(user);
assertThat(response).isPresent();
}
@Test
void shouldReturnEmptyIfRealmExists() {
var user = OzgCloudKeycloakUserTestFactory.create();
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());
var response = service.getPreconditionErrors(OzgCloudKeycloakUserTestFactory.create());
var response = service.getPreconditionErrors(user);
assertThat(response).isEmpty();
}
@Test
void shouldReturnEmptyIfuserHasEmail() {
var user = OzgCloudKeycloakUserTestFactory.create();
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());
var response = service.getPreconditionErrors(user);
assertThat(response).isEmpty();
}
@Test
void shouldCheckuserHasEmail() {
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).userHasEmail(user);
}
@Test
void shouldCheckIfKeycloakClientExists() {
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
......@@ -145,55 +185,87 @@ class KeycloakUserPreconditionServiceTest {
}
@Nested
class TestClientExists {
class TestuserHasEmail {
@Test
void shouldRespondMissingRealm() {
when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.empty());
var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
void shouldResponduserHasEmail() {
var response = service.userHasEmail(OzgCloudKeycloakUserTestFactory.create());
assertThat(rsp).isPresent();
assertThat(response).isTrue();
}
@Test
void shouldReturnClientExists() {
when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.of(mock(ClientRepresentation.class)));
void shouldRespondWhenUserEmailIsEmpty() {
var user = OzgCloudKeycloakUserTestFactory.create();
user.getSpec().getKeycloakUser().setEmail("");
var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
var response = service.userHasEmail(user);
assertThat(rsp).isEmpty();
assertThat(response).isFalse();
}
}
@Nested
class TestGroupsExists {
@Test
void shouldRespondWhenUserEmailIsNull() {
var user = OzgCloudKeycloakUserTestFactory.create();
user.getSpec().getKeycloakUser().setEmail(null);
private static final OzgCloudKeycloakUser user = OzgCloudKeycloakUserTestFactory.create();
var response = service.userHasEmail(user);
@BeforeEach
void init() {
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
assertThat(response).isFalse();
}
@Test
void shouldReturnMissingGroup() {
when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1, OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false);
@Nested
class TestClientExists {
@Test
void shouldRespondMissingRealm() {
when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.empty());
var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
var rsp = service.getPreconditionErrors(user);
assertThat(rsp).isPresent();
}
assertThat(rsp).isPresent();
@Test
void shouldReturnClientExists() {
when(keycloakGenericRemoteService.getByClientId(any(), any())).thenReturn(Optional.of(mock(ClientRepresentation.class)));
var rsp = service.clientsExists(OzgCloudKeycloakUserTestFactory.create(), null);
assertThat(rsp).isEmpty();
}
}
@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);
@Nested
class TestGroupsExists {
private static final OzgCloudKeycloakUser user = OzgCloudKeycloakUserTestFactory.create();
@BeforeEach
void init() {
doReturn(true).when(keycloakGenericRemoteService).realmExists(anyString());
doReturn(Optional.empty()).when(service).clientsExists(any(), any());
}
@Test
void shouldReturnMissingGroup() {
when(keycloakGenericRemoteService.groupExists(KeycloakUserSpecUserTestFactory.GROUP_NAME_1,
OzgCloudKeycloakUserTestFactory.METADATA_NAMESPACE)).thenReturn(false);
var rsp = service.getPreconditionErrors(user);
assertThat(rsp).isPresent();
}
@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);
var rsp = service.getPreconditionErrors(user);
var rsp = service.getPreconditionErrors(user);
assertThat(rsp).isEmpty();
assertThat(rsp).isEmpty();
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment