Skip to content

Commit da8541e

Browse files
csvirimetacosm
authored andcommitted
manage tests, refactored ITs
1 parent c7db869 commit da8541e

File tree

8 files changed

+115
-81
lines changed

8 files changed

+115
-81
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package io.javaoperatorsdk.operator;
2+
3+
import java.time.Duration;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
import io.fabric8.kubernetes.api.model.ObjectMeta;
8+
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
9+
import io.javaoperatorsdk.operator.sample.bulkdependent.BulkDependentTestCustomResource;
10+
import io.javaoperatorsdk.operator.sample.bulkdependent.BulkDependentTestSpec;
11+
12+
import static io.javaoperatorsdk.operator.sample.bulkdependent.ConfigMapBulkDependentResource.LABEL_KEY;
13+
import static io.javaoperatorsdk.operator.sample.bulkdependent.ConfigMapBulkDependentResource.LABEL_VALUE;
14+
import static org.assertj.core.api.Assertions.assertThat;
15+
import static org.awaitility.Awaitility.await;
16+
17+
public abstract class BulkDependentTestBase {
18+
19+
public static final String TEST_RESOURCE_NAME = "test";
20+
public static final int INITIAL_NUMBER_OF_CONFIG_MAPS = 3;
21+
22+
@Test
23+
public void managesBulkConfigMaps() {
24+
extension().create(testResource());
25+
assertNumberOfConfigMaps(3);
26+
27+
updateSpecWithNumber(1);
28+
assertNumberOfConfigMaps(1);
29+
30+
updateSpecWithNumber(5);
31+
assertNumberOfConfigMaps(5);
32+
33+
extension().delete(testResource());
34+
assertNumberOfConfigMaps(0);
35+
}
36+
37+
private void assertNumberOfConfigMaps(int n) {
38+
// this test was failing with a lower timeout on GitHub, probably the garbage collection was
39+
// slower there.
40+
await().atMost(Duration.ofSeconds(30))
41+
.untilAsserted(() -> {
42+
var cms =
43+
extension().getKubernetesClient().configMaps().inNamespace(extension().getNamespace())
44+
.withLabel(LABEL_KEY, LABEL_VALUE)
45+
.list().getItems();
46+
assertThat(cms).withFailMessage("Number of items is still: " + cms.size())
47+
.hasSize(n);
48+
});
49+
}
50+
51+
private BulkDependentTestCustomResource testResource() {
52+
BulkDependentTestCustomResource cr = new BulkDependentTestCustomResource();
53+
cr.setMetadata(new ObjectMeta());
54+
cr.getMetadata().setName(TEST_RESOURCE_NAME);
55+
cr.setSpec(new BulkDependentTestSpec());
56+
cr.getSpec().setNumberOfResources(INITIAL_NUMBER_OF_CONFIG_MAPS);
57+
return cr;
58+
}
59+
60+
61+
private void updateSpecWithNumber(int n) {
62+
var resource = testResource();
63+
resource.getSpec().setNumberOfResources(n);
64+
extension().replace(resource);
65+
}
66+
67+
abstract LocallyRunOperatorExtension extension();
68+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package io.javaoperatorsdk.operator;
2+
3+
import org.junit.jupiter.api.extension.RegisterExtension;
4+
5+
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
6+
import io.javaoperatorsdk.operator.sample.bulkdependent.ManagedBulkDependentReconciler;
7+
8+
class ManagedBulkDependentIT extends BulkDependentTestBase {
9+
10+
@RegisterExtension
11+
LocallyRunOperatorExtension extension =
12+
LocallyRunOperatorExtension.builder().withReconciler(new ManagedBulkDependentReconciler())
13+
.build();
14+
15+
16+
@Override
17+
LocallyRunOperatorExtension extension() {
18+
return extension;
19+
}
20+
}
Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,19 @@
11
package io.javaoperatorsdk.operator;
22

3-
import java.time.Duration;
4-
5-
import org.junit.jupiter.api.Test;
63
import org.junit.jupiter.api.extension.RegisterExtension;
74

8-
import io.fabric8.kubernetes.api.model.ObjectMeta;
95
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
106
import io.javaoperatorsdk.operator.sample.bulkdependent.StandaloneBulkDependentReconciler;
11-
import io.javaoperatorsdk.operator.sample.bulkdependent.StandaloneBulkDependentTestCustomResource;
12-
import io.javaoperatorsdk.operator.sample.bulkdependent.StandaloneBulkDependentTestSpec;
13-
14-
import static io.javaoperatorsdk.operator.sample.bulkdependent.ConfigMapBulkDependentResource.LABEL_KEY;
15-
import static io.javaoperatorsdk.operator.sample.bulkdependent.ConfigMapBulkDependentResource.LABEL_VALUE;
16-
import static org.assertj.core.api.Assertions.assertThat;
17-
import static org.awaitility.Awaitility.await;
187

19-
class StandaloneBulkDependentIT {
20-
21-
public static final String TEST_RESOURCE_NAME = "test";
22-
public static final int NUMBER_OF_CONFIG_MAPS = 3;
8+
class StandaloneBulkDependentIT extends BulkDependentTestBase {
239

2410
@RegisterExtension
25-
LocallyRunOperatorExtension operator =
11+
LocallyRunOperatorExtension extension =
2612
LocallyRunOperatorExtension.builder().withReconciler(new StandaloneBulkDependentReconciler())
2713
.build();
2814

29-
// TODO update, deleter - no GC test, external bulk resource
30-
@Test
31-
void managesBulkConfigMaps() {
32-
operator.create(testResource());
33-
assertNumberOfConfigMaps(3);
34-
35-
updateSpecWithNumber(1);
36-
assertNumberOfConfigMaps(1);
37-
38-
updateSpecWithNumber(5);
39-
assertNumberOfConfigMaps(5);
40-
41-
operator.delete(testResource());
42-
assertNumberOfConfigMaps(0);
15+
@Override
16+
LocallyRunOperatorExtension extension() {
17+
return extension;
4318
}
44-
45-
void assertNumberOfConfigMaps(int n) {
46-
// this test was failing with a lower timeout on GitHub, probably the garbage collection was
47-
// slower there.
48-
await().atMost(Duration.ofSeconds(30))
49-
.untilAsserted(() -> {
50-
var cms = operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace())
51-
.withLabel(LABEL_KEY, LABEL_VALUE)
52-
.list().getItems();
53-
assertThat(cms).withFailMessage("Number of items is still: " + cms.size())
54-
.hasSize(n);
55-
});
56-
}
57-
58-
private void updateSpecWithNumber(int n) {
59-
var resource = testResource();
60-
resource.getSpec().setNumberOfResources(n);
61-
operator.replace(resource);
62-
}
63-
64-
private StandaloneBulkDependentTestCustomResource testResource() {
65-
StandaloneBulkDependentTestCustomResource cr = new StandaloneBulkDependentTestCustomResource();
66-
cr.setMetadata(new ObjectMeta());
67-
cr.getMetadata().setName(TEST_RESOURCE_NAME);
68-
cr.setSpec(new StandaloneBulkDependentTestSpec());
69-
cr.getSpec().setNumberOfResources(NUMBER_OF_CONFIG_MAPS);
70-
return cr;
71-
}
72-
7319
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@Group("sample.javaoperatorsdk")
1010
@Version("v1")
1111
@ShortNames("sbd")
12-
public class StandaloneBulkDependentTestCustomResource
13-
extends CustomResource<StandaloneBulkDependentTestSpec, Void>
12+
public class BulkDependentTestCustomResource
13+
extends CustomResource<BulkDependentTestSpec, Void>
1414
implements Namespaced {
1515
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package io.javaoperatorsdk.operator.sample.bulkdependent;
22

3-
public class StandaloneBulkDependentTestSpec {
3+
public class BulkDependentTestSpec {
44

55
private Integer numberOfResources;
66

77
public Integer getNumberOfResources() {
88
return numberOfResources;
99
}
1010

11-
public StandaloneBulkDependentTestSpec setNumberOfResources(Integer numberOfResources) {
11+
public BulkDependentTestSpec setNumberOfResources(Integer numberOfResources) {
1212
this.numberOfResources = numberOfResources;
1313
return this;
1414
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ConfigMapBulkDependentResource.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
1616

1717
public class ConfigMapBulkDependentResource
18-
extends CRUDKubernetesDependentResource<ConfigMap, StandaloneBulkDependentTestCustomResource>
19-
implements BulkDependentResource<ConfigMap, StandaloneBulkDependentTestCustomResource> {
18+
extends CRUDKubernetesDependentResource<ConfigMap, BulkDependentTestCustomResource>
19+
implements BulkDependentResource<ConfigMap, BulkDependentTestCustomResource> {
2020

2121
private final static Logger log = LoggerFactory.getLogger(ConfigMapBulkDependentResource.class);
2222

2323
public static final String LABEL_KEY = "bulk";
2424
public static final String LABEL_VALUE = "true";
25-
private BulkResourceDiscriminatorFactory<ConfigMap, StandaloneBulkDependentTestCustomResource> factory =
25+
private BulkResourceDiscriminatorFactory<ConfigMap, BulkDependentTestCustomResource> factory =
2626
index -> (resource, primary, context) -> {
2727
var resources = context.getSecondaryResources(resource).stream()
2828
.filter(r -> r.getMetadata().getName().endsWith("-" + index))
@@ -41,8 +41,8 @@ public ConfigMapBulkDependentResource() {
4141
}
4242

4343
@Override
44-
public ConfigMap desired(StandaloneBulkDependentTestCustomResource primary,
45-
int index, Context<StandaloneBulkDependentTestCustomResource> context) {
44+
public ConfigMap desired(BulkDependentTestCustomResource primary,
45+
int index, Context<BulkDependentTestCustomResource> context) {
4646
ConfigMap configMap = new ConfigMap();
4747
configMap.setMetadata(new ObjectMetaBuilder()
4848
.withName(primary.getMetadata().getName() + "-" + index)
@@ -54,13 +54,13 @@ public ConfigMap desired(StandaloneBulkDependentTestCustomResource primary,
5454
}
5555

5656
@Override
57-
public int count(StandaloneBulkDependentTestCustomResource primary,
58-
Context<StandaloneBulkDependentTestCustomResource> context) {
57+
public int count(BulkDependentTestCustomResource primary,
58+
Context<BulkDependentTestCustomResource> context) {
5959
return primary.getSpec().getNumberOfResources();
6060
}
6161

6262
@Override
63-
public BulkResourceDiscriminatorFactory<ConfigMap, StandaloneBulkDependentTestCustomResource> bulkResourceDiscriminatorFactory() {
63+
public BulkResourceDiscriminatorFactory<ConfigMap, BulkDependentTestCustomResource> bulkResourceDiscriminatorFactory() {
6464
return factory;
6565
}
6666
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/ManagedBulkDependentReconciler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010

1111
@ControllerConfiguration(dependents = @Dependent(type = ConfigMapBulkDependentResource.class))
1212
public class ManagedBulkDependentReconciler
13-
implements Reconciler<StandaloneBulkDependentTestCustomResource> {
13+
implements Reconciler<BulkDependentTestCustomResource> {
1414

1515
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
1616

1717
@Override
18-
public UpdateControl<StandaloneBulkDependentTestCustomResource> reconcile(
19-
StandaloneBulkDependentTestCustomResource resource,
20-
Context<StandaloneBulkDependentTestCustomResource> context) throws Exception {
18+
public UpdateControl<BulkDependentTestCustomResource> reconcile(
19+
BulkDependentTestCustomResource resource,
20+
Context<BulkDependentTestCustomResource> context) throws Exception {
2121

2222
numberOfExecutions.addAndGet(1);
2323

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/StandaloneBulkDependentReconciler.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
@ControllerConfiguration
1313
public class StandaloneBulkDependentReconciler
14-
implements Reconciler<StandaloneBulkDependentTestCustomResource>, TestExecutionInfoProvider,
15-
EventSourceInitializer<StandaloneBulkDependentTestCustomResource>, KubernetesClientAware {
14+
implements Reconciler<BulkDependentTestCustomResource>, TestExecutionInfoProvider,
15+
EventSourceInitializer<BulkDependentTestCustomResource>, KubernetesClientAware {
1616

1717
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
1818

@@ -24,9 +24,9 @@ public StandaloneBulkDependentReconciler() {
2424
}
2525

2626
@Override
27-
public UpdateControl<StandaloneBulkDependentTestCustomResource> reconcile(
28-
StandaloneBulkDependentTestCustomResource resource,
29-
Context<StandaloneBulkDependentTestCustomResource> context) {
27+
public UpdateControl<BulkDependentTestCustomResource> reconcile(
28+
BulkDependentTestCustomResource resource,
29+
Context<BulkDependentTestCustomResource> context) {
3030
numberOfExecutions.addAndGet(1);
3131

3232
dependent.reconcile(resource, context);
@@ -40,7 +40,7 @@ public int getNumberOfExecutions() {
4040

4141
@Override
4242
public Map<String, EventSource> prepareEventSources(
43-
EventSourceContext<StandaloneBulkDependentTestCustomResource> context) {
43+
EventSourceContext<BulkDependentTestCustomResource> context) {
4444
return EventSourceInitializer
4545
.nameEventSources(dependent.initEventSource(context));
4646
}

0 commit comments

Comments
 (0)