diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java index f256c5974ef6db14bd3a529d1ca257dfabd450c9..8021fb1da25c86c83769130b233f61926d8f4f4c 100644 --- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java +++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java @@ -55,14 +55,22 @@ interface KeycloakRealmMapper { @Named("smtpServer") default Map<String, String> mapSmtpServer(OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer server) { Map<String, String> smtpServer = new HashMap<>(); - smtpServer.put("host", server.getHost()); - smtpServer.put("port", server.getPort()); - smtpServer.put("user", server.getUser()); - smtpServer.put("password", server.getPassword()); - smtpServer.put("starttls", server.getStarttls()); - smtpServer.put("auth", server.getAuth()); - smtpServer.put("from", server.getFrom()); - smtpServer.put("fromDisplayName", server.getFromDisplayName()); + if( server.getHost() != null ) + smtpServer.put("host", server.getHost()); + if( server.getPort() != null ) + smtpServer.put("port", server.getPort()); + if( server.getUser() != null ) + smtpServer.put("user", server.getUser()); + if( server.getPassword() != null ) + smtpServer.put("password", server.getPassword()); + if( server.getStarttls() != null ) + smtpServer.put("starttls", server.getStarttls()); + if( server.getAuth() != null ) + smtpServer.put("auth", server.getAuth()); + if( server.getFrom() != null ) + smtpServer.put("from", server.getFrom()); + if( server.getFromDisplayName() != null ) + smtpServer.put("fromDisplayName", server.getFromDisplayName()); return smtpServer; } diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java index bc63886d0cf9b6ebb39900ab1d346cc04e1341b3..7cee004886117c6a8e98eaaae0c2d2d24be6d260 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java @@ -100,14 +100,14 @@ class KeycloakRealmMapperTest { @Test void shouldContainSmtpServerKeysValues() { - var mapped = mapper.map(KeycloakRealmSmtpServerTestFactory.create()); + var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create()); var mappedSmtpServer = mapped.getSmtpServer(); assertThat(mappedSmtpServer.get("host")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_HOST); assertThat(mappedSmtpServer.get("port")).isEqualTo("432"); assertThat(mappedSmtpServer.get("password")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_PASSWORD); assertThat(mappedSmtpServer.get("user")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_USER); - assertThat(mappedSmtpServer.get("starttls")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS.toString()); - assertThat(mappedSmtpServer.get("auth")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH.toString()); + assertThat(mappedSmtpServer.get("starttls")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_STARTTLS); + assertThat(mappedSmtpServer.get("auth")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_AUTH); assertThat(mappedSmtpServer.get("from")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM); assertThat(mappedSmtpServer.get("fromDisplayName")).isEqualTo(KeycloakRealmSmtpServerTestFactory.SMTP_SERVER_FROM_DISPLAY_NAME); diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java index bdcffd897a0df6b6e0f81b27a332d28922ae2d44..146211a6b34bb0bffe9105889b7d95d5a98a8585 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java @@ -71,6 +71,12 @@ class KeycloakRealmReconcilerTest { assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK); } + + @Test + void shouldCreateRealmWithSpecWithoutSMTPConfig() { + var response = reconciler.reconcile(OzgCloudKeycloakRealmTestFactory.create(), null); + assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK); + } } @DisplayName("Cleanup") diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmSmtpServerTestFactory.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmSmtpServerTestFactory.java index 737c2a8f07cd0c76d8b2593bdfd757ca5bf22c5f..eecf3c8aad60ab83437ebe4c0fb0c6f7ff14ad44 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmSmtpServerTestFactory.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmSmtpServerTestFactory.java @@ -16,13 +16,8 @@ public class KeycloakRealmSmtpServerTestFactory { public final static KeycloakRealmSMTPServer SMTP_SERVER = KeycloakRealmSMTPServer.builder().host(SMTP_SERVER_HOST).user(SMTP_SERVER_USER). password(SMTP_SERVER_PASSWORD).port(SMTP_SERVER_PORT).starttls(SMTP_SERVER_STARTTLS).auth(SMTP_SERVER_AUTH).from(SMTP_SERVER_FROM).fromDisplayName(SMTP_SERVER_FROM_DISPLAY_NAME).build(); - public static OzgCloudKeycloakRealmSpec create() { - return createBuilder().build(); - } - - public static OzgCloudKeycloakRealmSpec.OzgCloudKeycloakRealmSpecBuilder createBuilder() { - return OzgCloudKeycloakRealmSpec.builder() - .smtpServer(SMTP_SERVER); + public static OzgCloudKeycloakRealmSpec.KeycloakRealmSMTPServer create() { + return SMTP_SERVER; } } diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java index 78cd362278adbda6df82081d96c9cfd8c5607c9d..86fbe5456fa61d53e1de4215a7668875c110d286 100644 --- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java +++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java @@ -23,6 +23,7 @@ */ package de.ozgcloud.operator.keycloak.realm; + public class OzgCloudKeycloakRealmSpecTestFactory { public final static String DISPLAY_NAME = "TestDisplayName"; @@ -35,6 +36,7 @@ public class OzgCloudKeycloakRealmSpecTestFactory { public static OzgCloudKeycloakRealmSpec.OzgCloudKeycloakRealmSpecBuilder createBuilder() { return OzgCloudKeycloakRealmSpec.builder() .keepAfterDelete(KEEP_AFTER_DELETE) - .displayName(DISPLAY_NAME); + .displayName(DISPLAY_NAME) + .smtpServer(KeycloakRealmSmtpServerTestFactory.create()); } }