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

add unit test to reconciler

parent a85c2aeb
Loading
Showing
with 103 additions and 7 deletions
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<operator-sdk.version>5.0.0</operator-sdk.version> <operator-sdk.version>5.0.0</operator-sdk.version>
<!-- <operator-sdk.version>4.2.8</operator-sdk.version>-->
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
...@@ -39,6 +40,12 @@ ...@@ -39,6 +40,12 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>io.javaoperatorsdk</groupId>-->
<!-- <artifactId>operator-framework-spring-boot-starter-test</artifactId>-->
<!-- <version>${operator-sdk.version}</version>-->
<!-- <scope>test</scope>-->
<!-- </dependency>-->
</dependencies> </dependencies>
<build> <build>
......
...@@ -5,16 +5,17 @@ import java.util.List; ...@@ -5,16 +5,17 @@ import java.util.List;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import de.ozgcloud.operator.keycloak.KeycloakUserReconciler;
import io.javaoperatorsdk.operator.Operator; import io.javaoperatorsdk.operator.Operator;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
@Configuration @Configuration
public class Config { public class Config {
// @Bean @Bean
// WebPageReconciler customServiceController() { KeycloakUserReconciler customServiceController() {
// return new WebPageReconciler(); return new KeycloakUserReconciler();
// } }
@Bean(initMethod = "start", destroyMethod = "stop") @Bean(initMethod = "start", destroyMethod = "stop")
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
......
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak;
import java.time.LocalDate;
import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.Context;
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
...@@ -15,7 +17,7 @@ public class KeycloakUserReconciler implements Reconciler<KeycloakUser> { ...@@ -15,7 +17,7 @@ public class KeycloakUserReconciler implements Reconciler<KeycloakUser> {
// String name = crd.getMetadata().getName(); // String name = crd.getMetadata().getName();
String name = crd.getSpec().getName(); String name = crd.getSpec().getName();
log.info("Reconciling: {}", name); log.info("Reconciling: {}", name);
crd.setStatus(KeycloakUserStatus.builder().status("Updated status for " + name).build()); crd.setStatus(KeycloakUserStatus.builder().status("Updated status for " + name + LocalDate.now().toString()).build());
return UpdateControl.updateStatus(crd); return UpdateControl.updateStatus(crd);
} }
} }
package de.ozgcloud.operator.keycloak; package de.ozgcloud.operator.keycloak;
import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@Getter @Getter
@Setter @Setter
@Builder
public class KeycloakUserSpec { public class KeycloakUserSpec {
private String name; private String name;
......
package de.ozgcloud.operator; package de.ozgcloud.operator;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
//@SpringBootTest import io.javaoperatorsdk.operator.springboot.starter.test.EnableMockOperator;
@SpringBootTest
@EnableMockOperator
class OzgOperatorApplicationTests { class OzgOperatorApplicationTests {
@Test @Test
void contextLoads() { void contextLoads() {
} }
} }
package de.ozgcloud.operator.keycloak;
import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import lombok.SneakyThrows;
class KeycloakUserReconcilerTest {
KeycloakUserReconciler conciler = new KeycloakUserReconciler();
@Nested
class TestKeycloalUserStatus {
@Test
@SneakyThrows
void shouldSetStatus() {
KeycloakUser user = KeycloakUserTestFactory.create();
conciler.reconcile(user, null);
assertThat(user.getStatus().getStatus()).contains("Updated");
}
}
}
package de.ozgcloud.operator.keycloak;
class KeycloakUserSpecTestFactory {
public static final String NAME = "Hans";
public static KeycloakUserSpec create() {
return createBuilder().build();
}
private static KeycloakUserSpec.KeycloakUserSpecBuilder createBuilder() {
return KeycloakUserSpec.builder()
.name(NAME);
}
}
package de.ozgcloud.operator.keycloak;
class KeycloakUserStatusTestFactory {
public static KeycloakUserStatus create() {
return createBuiler().build();
}
private static KeycloakUserStatus.KeycloakUserStatusBuilder createBuiler() {
return KeycloakUserStatus.builder();
}
}
package de.ozgcloud.operator.keycloak;
class KeycloakUserTestFactory {
public static final KeycloakUserStatus KEYCLOAK_USER_STATUS = KeycloakUserStatusTestFactory.create();
public static final KeycloakUserSpec KEYCLOAK_USER_SPEC = KeycloakUserSpecTestFactory.create();
public static KeycloakUser create() {
KeycloakUser keycloakUser = new KeycloakUser();
keycloakUser.setStatus(KEYCLOAK_USER_STATUS);
keycloakUser.setSpec(KEYCLOAK_USER_SPEC);
return keycloakUser;
}
}
apiVersion: "operator.ozgcloud.de/v1"
kind: KeycloakUser
metadata:
name: keycloakuser-test
spec:
name: helge
javaoperatorsdk:
test:
crdPaths: classpath:KeycloakUserTest.yaml
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment