From da80d40b51b228ed13c32bbf592b21809b5541e3 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 25 Aug 2023 10:52:02 +0200
Subject: [PATCH] OZG-3961 create secret if not exists before patch

---
 .../user/KeycloakUserRemoteService.java        |  4 ++++
 .../user/KeycloakUserRemoteServiceTest.java    | 18 +++++++++---------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java
index cee07ec..5bdd4c7 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteService.java
@@ -128,6 +128,10 @@ class KeycloakUserRemoteService {
 		var credentialsSecret = createUserSecret(userSpec.getKeycloakUser(), namespace);
 
 		var secret = getUserSecret(userSpec, namespace);
+
+		if (Objects.isNull(secret.get())) {
+			secret.create();
+		}
 		secret.patch(credentialsSecret);
 	}
 
diff --git a/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteServiceTest.java b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteServiceTest.java
index 64b3499..9778ebf 100644
--- a/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteServiceTest.java
+++ b/src/test/java/de/ozgcloud/operator/keycloak/user/KeycloakUserRemoteServiceTest.java
@@ -356,21 +356,21 @@ class KeycloakUserRemoteServiceTest {
 			verify(userRemoteService).getUserSecret(userSpec, NAMESPACE);
 		}
 
+		@Test
+		void shouldCreateSecretIfNotExists() {
+			when(secretResource.get()).thenReturn(null);
+
+			userRemoteService.createSecret(userSpec, NAMESPACE);
+
+			verify(secretResource).create();
+		}
+
 		@Test
 		void shouldPatchSecret() {
 			userRemoteService.createSecret(userSpec, NAMESPACE);
 
 			verify(secretResource).patch(secret);
 		}
-
-//		@Test
-//		void shouldCreateSecret() {
-//			doReturn(secret).when(userRemoteService).createUserSecret(any(), any());
-//
-//			userRemoteService.createSecret(userSpec, NAMESPACE);
-//
-//			verify(kubernetesRemoteService).createSecret(NAMESPACE, secret);
-//		}
 	}
 
 	@DisplayName("Create user secret")
-- 
GitLab