diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserService.java index 40754bc0b82d3532311b7bcef0516c2920527101..e1db8b21157e6a7252b493011127dd603819afed 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserService.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserService.java @@ -43,7 +43,7 @@ class KeycloakUserService { public void createOrUpdateUser(OzgKeycloakUserSpec userSpec, String namespace) { - if (userSpecHasNoPassword(userSpec, namespace)) { + if (userHasNoPassword(userSpec, namespace)) { var secret = userSecretService.getOrCreateClusterSecret(userSpec, namespace); userSpec.getKeycloakUser().setPassword(userSecretService.getPasswordFromSecret(secret)); } @@ -53,7 +53,7 @@ class KeycloakUserService { () -> remoteService.createUser(userMapper.map(userSpec), namespace)); } - boolean userSpecHasNoPassword(OzgKeycloakUserSpec userSpec, String namespace) { + boolean userHasNoPassword(OzgKeycloakUserSpec userSpec, String namespace) { return StringUtils.isEmpty(userSpec.getKeycloakUser().getPassword()); } diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilder.java b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilder.java index 1ce5391008ecd85a05188a4b21eac8ecf5d82a64..0236edf9496b898a340d9629f0894b0d190b5006 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilder.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilder.java @@ -15,7 +15,7 @@ class UserSecretBuilder { static final String SECRET_PASSWORD_FIELD = "password"; static final String SECRET_NAME_FIELD = "name"; - Secret build(String name, KeycloakUserSpecUser userSpec, String namespace) { + public Secret build(String name, KeycloakUserSpecUser userSpec, String namespace) { return new SecretBuilder() .withType(SECRET_TYPE) .withMetadata(createMetaData(name, namespace)) diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java index 09efbd8ad9ec7498cc89009aa751751abaff22c9..458cd8b16fdcf973794d224a8090c3809072b2e4 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java @@ -42,11 +42,11 @@ class UserSecretService { return kubernetesRemoteService.getSecret(namespace, secretName); } - String getPasswordFromSecret(Secret secret) { + public String getPasswordFromSecret(Secret secret) { return secretReader.getPasswortFromSecret(secret); } - Secret getOrCreateClusterSecret(OzgKeycloakUserSpec userSpec, String namespace) { + public Secret getOrCreateClusterSecret(OzgKeycloakUserSpec userSpec, String namespace) { return Optional.ofNullable(getUserSecret(userSpec, namespace)).map(Resource::get) .orElseGet(() -> create(userSpec, namespace)); } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakLivelTest.java b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakLivelTest.java index 603ad8b4df7e9916112a8e2bc728d4eb95bc074f..a1e2e9c67a3955d13776abd021f8f1783f727228 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakLivelTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakLivelTest.java @@ -67,6 +67,7 @@ class KeycloakLivelTest { // remoteService.updateClientRole(remoteRole.get(), createClient().getClientId(), realm); } + @SuppressWarnings("unused") private RoleRepresentation createRoles() { return mapper.mapRole(OzgKeycloakClientSpecTestFactory.ROLE1); } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserServiceTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserServiceTest.java index 1924c51b1ee958370878394767beba431db52a33..faebcd192bf975cb39dc1caf737c9f5b5b5a73c7 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserServiceTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserServiceTest.java @@ -28,7 +28,6 @@ import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.Optional; -import java.util.UUID; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.BeforeEach; @@ -81,7 +80,7 @@ class KeycloakUserServiceTest { @BeforeEach void mock() { - doReturn(true).when(service).userSpecHasNoPassword(any(), eq(TEST_NAMESPACE)); + doReturn(true).when(service).userHasNoPassword(any(), eq(TEST_NAMESPACE)); } @Test @@ -93,15 +92,14 @@ class KeycloakUserServiceTest { @Test void shouldUpdateUserPassword() { - var password = UUID.randomUUID().toString(); var userWithoutPassword = OzgKeycloakUserSpecTestFactory.createBuilder() .keycloakUser(KeycloakUserSpecUserTestFactory.createBuiler().password(StringUtils.EMPTY).build()).build(); - when(userSecretService.getPasswordFromSecret(any())).thenReturn(password); + when(userSecretService.getPasswordFromSecret(any())).thenReturn(KeycloakUserSpecUserTestFactory.PASSWORD); service.createOrUpdateUser(userWithoutPassword, TEST_NAMESPACE); verify(userMapper).map(ozgKeycloakUserSpecCaptor.capture()); - assertThat(ozgKeycloakUserSpecCaptor.getValue().getKeycloakUser().getPassword()).isNotEmpty(); + assertThat(ozgKeycloakUserSpecCaptor.getValue().getKeycloakUser().getPassword()).isEqualTo(KeycloakUserSpecUserTestFactory.PASSWORD); } } @@ -111,7 +109,7 @@ class KeycloakUserServiceTest { @BeforeEach void mock() { - doReturn(false).when(service).userSpecHasNoPassword(any(), any()); + doReturn(false).when(service).userHasNoPassword(any(), any()); } @Test @@ -126,7 +124,7 @@ class KeycloakUserServiceTest { void shouldCallUserHasNoPassword() { service.createOrUpdateUser(userSpec, TEST_NAMESPACE); - verify(service).userSpecHasNoPassword(userSpec, TEST_NAMESPACE); + verify(service).userHasNoPassword(userSpec, TEST_NAMESPACE); } @Test @@ -177,7 +175,7 @@ class KeycloakUserServiceTest { void testUserHasNoPasswordTrue() { OzgKeycloakUserSpec user = OzgKeycloakUserSpecTestFactory.create(); - boolean userHasNoPassword = service.userSpecHasNoPassword(user, TEST_NAMESPACE); + boolean userHasNoPassword = service.userHasNoPassword(user, TEST_NAMESPACE); assertThat(userHasNoPassword).isFalse(); } @@ -186,7 +184,7 @@ class KeycloakUserServiceTest { void testUserHasNoPasswordFalse() { OzgKeycloakUserSpec user = createUserWithoutPassword(); - boolean userHasNoPassword = service.userSpecHasNoPassword(user, TEST_NAMESPACE); + boolean userHasNoPassword = service.userHasNoPassword(user, TEST_NAMESPACE); assertThat(userHasNoPassword).isTrue(); } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/SecretTestFactory.java b/src/test/java/de/ozgcloud/operator/keycloak/user/SecretTestFactory.java index 9d13258d77fb0fe999f3ffabad5b61358f9c6065..40dd8bf0527f59170d715656f30484912f2e6160 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/user/SecretTestFactory.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/SecretTestFactory.java @@ -24,11 +24,15 @@ package de.ozgcloud.operator.keycloak.user; +import java.util.UUID; + import io.fabric8.kubernetes.api.model.Secret; import io.fabric8.kubernetes.api.model.SecretBuilder; public class SecretTestFactory { + public static final String PASSWORD = UUID.randomUUID().toString(); + public static Secret create() { return createBuilder().build(); } diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilderTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilderTest.java index 2215fbe500827fbf7d08726af4c097640cc575ed..9d92dd981f57389def7895885275dcf0b43c1bdd 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilderTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretBuilderTest.java @@ -48,12 +48,11 @@ public class UserSecretBuilderTest { @Test void shouldHavePassword() { - final String password = "PASSWORD"; - doReturn(password).when(builder).generatePassword(); + doReturn(SecretTestFactory.PASSWORD).when(builder).generatePassword(); var secret = builder.build(NAME, userSpec, NAMESPACE); - assertThat(secret.getStringData()).containsEntry(UserSecretBuilder.SECRET_PASSWORD_FIELD, password); + assertThat(secret.getStringData()).containsEntry(UserSecretBuilder.SECRET_PASSWORD_FIELD, SecretTestFactory.PASSWORD); } @DisplayName("metadata") diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretReaderTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretReaderTest.java index 283dd464f422779bbbaa89f93a9302487e884776..80053a5b7b3123797b0a5bf5ea64431801ba351c 100644 --- a/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretReaderTest.java +++ b/src/test/java/de/ozgcloud/operator/keycloak/user/UserSecretReaderTest.java @@ -27,7 +27,6 @@ package de.ozgcloud.operator.keycloak.user; import static org.assertj.core.api.Assertions.*; import java.util.Map; -import java.util.UUID; import org.junit.jupiter.api.Test; import org.mockito.Spy; @@ -37,8 +36,6 @@ import io.fabric8.kubernetes.api.model.SecretBuilder; class UserSecretReaderTest { - private static final String PASSWORD = UUID.randomUUID().toString(); - @Spy private UserSecretReader reader; @@ -48,10 +45,10 @@ class UserSecretReaderTest { String password = reader.getPasswortFromSecret(secret); - assertThat(password).isEqualTo(PASSWORD); + assertThat(password).isEqualTo(SecretTestFactory.PASSWORD); } private Secret buildSecret() { - return new SecretBuilder().addToStringData(Map.of(UserSecretBuilder.SECRET_PASSWORD_FIELD, PASSWORD)).build(); + return new SecretBuilder().addToStringData(Map.of(UserSecretBuilder.SECRET_PASSWORD_FIELD, SecretTestFactory.PASSWORD)).build(); } }