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

OZG-5951 add realExist before realm delete

parent 5f3e5a8a
Branches
Tags
No related merge requests found
......@@ -26,6 +26,7 @@ package de.ozgcloud.operator.keycloak.realm;
import org.springframework.stereotype.Component;
import de.ozgcloud.operator.Config;
import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
import de.ozgcloud.operator.keycloak.OzgCloudCustomResourceStatus;
import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
import io.javaoperatorsdk.operator.api.reconciler.Context;
......@@ -43,6 +44,7 @@ import lombok.extern.log4j.Log4j2;
public class KeycloakRealmReconciler implements Reconciler<OzgCloudKeycloakRealm>, Cleaner<OzgCloudKeycloakRealm> {
private final KeycloakRealmService service;
private final KeycloakGenericRemoteService keycloakGenericRemoteService;
@Override
public UpdateControl<OzgCloudKeycloakRealm> reconcile(OzgCloudKeycloakRealm resource, Context<OzgCloudKeycloakRealm> context) {
......@@ -69,6 +71,9 @@ public class KeycloakRealmReconciler implements Reconciler<OzgCloudKeycloakRealm
LOG.info("keep data");
return DeleteControl.defaultDelete();
}
if (!keycloakGenericRemoteService.realmExists(realm.getMetadata().getName())) {
return DeleteControl.defaultDelete();
}
return deleteRealm(realm);
}
......
......@@ -24,6 +24,7 @@
package de.ozgcloud.operator.keycloak.realm;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
......@@ -37,6 +38,7 @@ import org.mockito.Mock;
import org.mockito.Spy;
import de.ozgcloud.operator.Config;
import de.ozgcloud.operator.keycloak.KeycloakGenericRemoteService;
import de.ozgcloud.operator.keycloak.OzgCloudCustomResourceStatus;
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
......@@ -49,6 +51,11 @@ class KeycloakRealmReconcilerTest {
@Mock
private KeycloakRealmService service;
@Mock
private KeycloakGenericRemoteService keycloakGenericRemoteService;
private final String REALM = OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE;
@DisplayName("Reconcile")
@Nested
class TestReconcile {
......@@ -59,7 +66,7 @@ class KeycloakRealmReconcilerTest {
reconciler.reconcile(realm, null);
verify(service).createOrUpdateRealm(realm.getSpec(), OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
verify(service).createOrUpdateRealm(realm.getSpec(), REALM);
}
@Test
......@@ -93,7 +100,7 @@ class KeycloakRealmReconcilerTest {
void shouldNotCallService() {
reconciler.cleanup(realm, null);
verify(service, never()).deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
verify(service, never()).deleteRealm(REALM);
}
@Test
......@@ -111,21 +118,38 @@ class KeycloakRealmReconcilerTest {
private final OzgCloudKeycloakRealm realm = OzgCloudKeycloakRealmTestFactory.create();
@Test
void shouldCallDeleteRealm() {
void shouldDeleteRealmIfRealmExists() {
when(keycloakGenericRemoteService.realmExists(any())).thenReturn(true);
reconciler.cleanup(realm, null);
verify(reconciler).deleteRealm(realm);
}
@Test
void shouldReturnValueFromDeleteUser() {
void shouldReturnValueFromDeleteRealm() {
DeleteControl expected = DeleteControl.defaultDelete();
when(reconciler.deleteRealm(realm)).thenReturn(expected);
when(keycloakGenericRemoteService.realmExists(any())).thenReturn(true);
DeleteControl response = reconciler.cleanup(realm, null);
assertThat(response).isEqualTo(expected);
}
@Test
void shouldCallRealmExists() {
reconciler.cleanup(realm, null);
verify(keycloakGenericRemoteService).realmExists(null);
}
@Test
void shouldNotDeleteRealmIfRealmNotExists() {
when(keycloakGenericRemoteService.realmExists(any())).thenReturn(false);
reconciler.cleanup(realm, null);
verify(reconciler, never()).deleteRealm(realm);
}
}
@DisplayName("test delete")
......@@ -138,7 +162,7 @@ class KeycloakRealmReconcilerTest {
void shouldCallServiceDelete() {
reconciler.deleteRealm(realm);
verify(service).deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
verify(service).deleteRealm(REALM);
}
@Test
......@@ -151,7 +175,7 @@ class KeycloakRealmReconcilerTest {
@Test
void shouldRescheduleOnError() {
doThrow(RuntimeException.class).when(service)
.deleteRealm(OzgCloudKeycloakRealmTestFactory.METADATA_NAMESPACE);
.deleteRealm(REALM);
var control = reconciler.deleteRealm(realm);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment