Skip to content

Commit 423ba0f

Browse files
committed
fix test
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 66b82ab commit 423ba0f

File tree

2 files changed

+44
-7
lines changed

2 files changed

+44
-7
lines changed

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAIT.java

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,64 @@
1717

1818
class PatchResourceAndStatusNoSSAIT {
1919
@RegisterExtension
20-
LocallyRunOperatorExtension operator =
20+
LocallyRunOperatorExtension extension =
2121
LocallyRunOperatorExtension.builder()
2222
.withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false))
2323
.withReconciler(PatchResourceAndStatusNoSSAReconciler.class)
2424
.build();
2525

2626
@Test
2727
void updatesSubResourceStatus() {
28+
extension
29+
.getReconcilerOfType(PatchResourceAndStatusNoSSAReconciler.class)
30+
.setRemoveAnnotation(false);
2831
PatchResourceAndStatusNoSSACustomResource resource = createTestCustomResource("1");
29-
operator.create(resource);
32+
extension.create(resource);
3033

3134
awaitStatusUpdated(resource.getMetadata().getName());
3235
// wait for sure, there are no more events
3336
TestUtils.waitXms(300);
3437

3538
PatchResourceAndStatusNoSSACustomResource customResource =
36-
operator.get(
39+
extension.get(
3740
PatchResourceAndStatusNoSSACustomResource.class, resource.getMetadata().getName());
3841

39-
assertThat(TestUtils.getNumberOfExecutions(operator)).isEqualTo(1);
42+
assertThat(TestUtils.getNumberOfExecutions(extension)).isEqualTo(1);
4043
assertThat(customResource.getStatus().getState())
4144
.isEqualTo(PatchResourceAndStatusNoSSAStatus.State.SUCCESS);
4245
assertThat(customResource.getMetadata().getAnnotations().get(TEST_ANNOTATION)).isNotNull();
4346
}
4447

48+
@Test
49+
void removeAnnotationCorrectlyUpdatesStatus() {
50+
extension
51+
.getReconcilerOfType(PatchResourceAndStatusNoSSAReconciler.class)
52+
.setRemoveAnnotation(true);
53+
PatchResourceAndStatusNoSSACustomResource resource = createTestCustomResource("1");
54+
resource.getMetadata().setAnnotations(Map.of(TEST_ANNOTATION, TEST_ANNOTATION_VALUE));
55+
extension.create(resource);
56+
57+
awaitStatusUpdated(resource.getMetadata().getName());
58+
// wait for sure, there are no more events
59+
TestUtils.waitXms(300);
60+
61+
PatchResourceAndStatusNoSSACustomResource customResource =
62+
extension.get(
63+
PatchResourceAndStatusNoSSACustomResource.class, resource.getMetadata().getName());
64+
65+
assertThat(TestUtils.getNumberOfExecutions(extension)).isEqualTo(1);
66+
assertThat(customResource.getStatus().getState())
67+
.isEqualTo(PatchResourceAndStatusNoSSAStatus.State.SUCCESS);
68+
assertThat(customResource.getMetadata().getAnnotations().get(TEST_ANNOTATION)).isNull();
69+
}
70+
4571
void awaitStatusUpdated(String name) {
4672
await("cr status updated")
4773
.atMost(5, TimeUnit.SECONDS)
4874
.untilAsserted(
4975
() -> {
5076
PatchResourceAndStatusNoSSACustomResource cr =
51-
operator.get(PatchResourceAndStatusNoSSACustomResource.class, name);
77+
extension.get(PatchResourceAndStatusNoSSACustomResource.class, name);
5278
assertThat(cr).isNotNull();
5379
assertThat(cr.getStatus()).isNotNull();
5480
assertThat(cr.getStatus().getState())
@@ -60,7 +86,6 @@ public PatchResourceAndStatusNoSSACustomResource createTestCustomResource(String
6086
PatchResourceAndStatusNoSSACustomResource resource =
6187
new PatchResourceAndStatusNoSSACustomResource();
6288
resource.setMetadata(new ObjectMetaBuilder().withName("doubleupdateresource-" + id).build());
63-
resource.getMetadata().setAnnotations(Map.of(TEST_ANNOTATION, TEST_ANNOTATION_VALUE));
6489
resource.setSpec(new PatchResourceAndStatusNoSSASpec());
6590
resource.getSpec().setValue(id);
6691
return resource;

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAReconciler.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.baseapi.patchresourceandstatusnossa;
22

3+
import java.util.HashMap;
34
import java.util.concurrent.atomic.AtomicInteger;
45

56
import org.slf4j.Logger;
@@ -21,6 +22,8 @@ public class PatchResourceAndStatusNoSSAReconciler
2122
public static final String TEST_ANNOTATION_VALUE = "TestAnnotationValue";
2223
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
2324

25+
private volatile boolean removeAnnotation = false;
26+
2427
@Override
2528
public UpdateControl<PatchResourceAndStatusNoSSACustomResource> reconcile(
2629
PatchResourceAndStatusNoSSACustomResource resource,
@@ -29,7 +32,12 @@ public UpdateControl<PatchResourceAndStatusNoSSACustomResource> reconcile(
2932

3033
log.info("Value: " + resource.getSpec().getValue());
3134

32-
resource.getMetadata().getAnnotations().remove(TEST_ANNOTATION);
35+
if (removeAnnotation) {
36+
resource.getMetadata().getAnnotations().remove(TEST_ANNOTATION);
37+
} else {
38+
resource.getMetadata().setAnnotations(new HashMap<>());
39+
resource.getMetadata().getAnnotations().put(TEST_ANNOTATION, TEST_ANNOTATION_VALUE);
40+
}
3341
ensureStatusExists(resource);
3442
resource.getStatus().setState(PatchResourceAndStatusNoSSAStatus.State.SUCCESS);
3543

@@ -47,4 +55,8 @@ private void ensureStatusExists(PatchResourceAndStatusNoSSACustomResource resour
4755
public int getNumberOfExecutions() {
4856
return numberOfExecutions.get();
4957
}
58+
59+
public void setRemoveAnnotation(boolean removeAnnotation) {
60+
this.removeAnnotation = removeAnnotation;
61+
}
5062
}

0 commit comments

Comments
 (0)