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

add unit test to reconciler

parent a85c2aeb
Branches
Tags
No related merge requests found
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