Skip to content

Commit 0a1a381

Browse files
committed
fix: tests
1 parent 7b4a50f commit 0a1a381

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutorTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
import java.util.Collections;
55
import java.util.List;
66

7+
import io.fabric8.kubernetes.api.model.ConfigMap;
8+
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
79
import io.javaoperatorsdk.operator.api.reconciler.Context;
810
import io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter;
911
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
1012
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
1113
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
14+
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
1215
import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
1316

1417
public class AbstractWorkflowExecutorTest {
@@ -28,24 +31,21 @@ public class AbstractWorkflowExecutorTest {
2831
protected List<ReconcileRecord> executionHistory =
2932
Collections.synchronizedList(new ArrayList<>());
3033

31-
public class TestDependent implements DependentResource<String, TestCustomResource> {
34+
public class TestDependent extends KubernetesDependentResource<ConfigMap, TestCustomResource> {
3235

3336
private final String name;
3437

3538
public TestDependent(String name) {
39+
super(ConfigMap.class);
3640
this.name = name;
3741
}
3842

3943
@Override
40-
public ReconcileResult<String> reconcile(TestCustomResource primary,
44+
public ReconcileResult<ConfigMap> reconcile(TestCustomResource primary,
4145
Context<TestCustomResource> context) {
4246
executionHistory.add(new ReconcileRecord(this));
43-
return ReconcileResult.resourceCreated(VALUE);
44-
}
45-
46-
@Override
47-
public Class<String> resourceType() {
48-
return String.class;
47+
return ReconcileResult
48+
.resourceCreated(new ConfigMapBuilder().addToBinaryData("key", VALUE).build());
4949
}
5050

5151
@Override

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void isNotCleanerIfNoDeleter() {
3434
}
3535

3636
@Test
37-
void isNotCleanerIfNoGarbageCollected() {
37+
void isNotCleanerIfGarbageCollected() {
3838
assertThat(managedWorkflow(createDRSWithTraits(NAME, GarbageCollected.class))
3939
.isCleaner()).isFalse();
4040
}
@@ -45,12 +45,6 @@ void isCleanerIfHasDeleter() {
4545
assertThat(managedWorkflow(spec).isCleaner()).isTrue();
4646
}
4747

48-
@Test
49-
void isNotCleanerIfDeleterIsGarbageCollected() {
50-
var spec = createDRSWithTraits(NAME, Deleter.class, GarbageCollected.class);
51-
assertThat(managedWorkflow(spec).isCleaner()).isFalse();
52-
}
53-
5448
ManagedWorkflow managedWorkflow(DependentResourceSpec... specs) {
5549
final var configuration = mock(ControllerConfiguration.class);
5650
final var specList = List.of(specs);

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTestUtils.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package io.javaoperatorsdk.operator.processing.dependent.workflow;
22

3+
import java.util.Arrays;
34
import java.util.Set;
45

56
import org.mockito.Mockito;
67

78
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
89
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
10+
import io.javaoperatorsdk.operator.api.reconciler.dependent.GarbageCollected;
911
import io.javaoperatorsdk.operator.processing.dependent.EmptyTestDependentResource;
1012

1113
import static org.mockito.Mockito.mock;
@@ -23,11 +25,19 @@ public static DependentResourceSpec createDRS(String name, String... dependOns)
2325

2426
public static DependentResourceSpec createDRSWithTraits(String name,
2527
Class<?>... dependentResourceTraits) {
26-
final var drs = createDRS(name);
27-
final var spy = Mockito.spy(drs);
28-
when(spy.getDependentResource())
29-
.thenReturn(
30-
mock(DependentResource.class, withSettings().extraInterfaces(dependentResourceTraits)));
28+
final var spy = Mockito.mock(DependentResourceSpec.class);
29+
when(spy.getName()).thenReturn(name);
30+
31+
Class<? extends DependentResource> toMock = DependentResource.class;
32+
final var garbageCollected = dependentResourceTraits != null &&
33+
Arrays.asList(dependentResourceTraits).contains(GarbageCollected.class);
34+
35+
final var dr = mock(toMock, withSettings().extraInterfaces(dependentResourceTraits));
36+
// it would be better to call the real method here but it doesn't work because
37+
// KubernetesDependentResource checks for GarbageCollected trait when instantiated which doesn't
38+
// happen when using mocks
39+
when(dr.isDeletable()).thenReturn(!garbageCollected);
40+
when(spy.getDependentResource()).thenReturn(dr);
3141
return spy;
3242
}
3343

0 commit comments

Comments
 (0)