Skip to content

Commit 14403fb

Browse files
authored
feat: incompatible crd versions in test (#895)
1 parent a6e961c commit 14403fb

File tree

5 files changed

+40
-35
lines changed

5 files changed

+40
-35
lines changed

operator-framework/src/test/java/io/javaoperatorsdk/operator/MultiVersionCRDIT.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import io.javaoperatorsdk.operator.junit.OperatorExtension;
1212
import io.javaoperatorsdk.operator.sample.multiversioncrd.*;
1313

14+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
1415
import static org.awaitility.Awaitility.await;
1516

1617
class MultiVersionCRDIT {
1718

1819
public static final String CR_V1_NAME = "crv1";
1920
public static final String CR_V2_NAME = "crv2";
21+
2022
@RegisterExtension
2123
OperatorExtension operator =
2224
OperatorExtension.builder()
@@ -46,13 +48,38 @@ void multipleCRDVersions() {
4648
});
4749
}
4850

51+
@Test
52+
void invalidEventsDoesNotBreakEventHandling() {
53+
var v2res = createTestResourceV2WithLabel();
54+
v2res.getMetadata().getLabels().clear();
55+
operator.create(MultiVersionCRDTestCustomResource2.class, v2res);
56+
var v1res = createTestResourceV1WithoutLabel();
57+
operator.create(MultiVersionCRDTestCustomResource1.class, v1res);
58+
59+
await()
60+
.atMost(Duration.ofSeconds(2))
61+
.pollInterval(Duration.ofMillis(50))
62+
.until(() -> {
63+
var crV1Now = operator.get(MultiVersionCRDTestCustomResource1.class, CR_V1_NAME);
64+
return crV1Now.getStatus().getReconciledBy()
65+
.contains(MultiVersionCRDTestReconciler1.class.getSimpleName());
66+
});
67+
assertThat(
68+
operator
69+
.get(MultiVersionCRDTestCustomResource2.class, CR_V2_NAME)
70+
.getStatus()
71+
.getReconciledBy()
72+
.size())
73+
.isZero();
74+
}
75+
76+
4977
MultiVersionCRDTestCustomResource1 createTestResourceV1WithoutLabel() {
5078
MultiVersionCRDTestCustomResource1 cr = new MultiVersionCRDTestCustomResource1();
5179
cr.setMetadata(new ObjectMeta());
5280
cr.getMetadata().setName(CR_V1_NAME);
5381
cr.setSpec(new MultiVersionCRDTestCustomResourceSpec1());
54-
cr.getSpec().setValue1(1);
55-
cr.getSpec().setValue2(1);
82+
cr.getSpec().setValue(1);
5683
return cr;
5784
}
5885

@@ -63,7 +90,7 @@ MultiVersionCRDTestCustomResource2 createTestResourceV2WithLabel() {
6390
cr.getMetadata().setLabels(new HashMap<>());
6491
cr.getMetadata().getLabels().put("version", "v2");
6592
cr.setSpec(new MultiVersionCRDTestCustomResourceSpec2());
66-
cr.getSpec().setValue1(1);
93+
cr.getSpec().setValue("string value");
6794
return cr;
6895
}
6996
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiversioncrd/MultiVersionCRDTestCustomResourceSpec1.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,15 @@
22

33
public class MultiVersionCRDTestCustomResourceSpec1 {
44

5-
private int value1;
5+
private int value;
66

7-
private int value2;
8-
9-
public int getValue1() {
10-
return value1;
7+
public int getValue() {
8+
return value;
119
}
1210

13-
public MultiVersionCRDTestCustomResourceSpec1 setValue1(int value1) {
14-
this.value1 = value1;
11+
public MultiVersionCRDTestCustomResourceSpec1 setValue(int value) {
12+
this.value = value;
1513
return this;
1614
}
1715

18-
public int getValue2() {
19-
return value2;
20-
}
21-
22-
public MultiVersionCRDTestCustomResourceSpec1 setValue2(int value2) {
23-
this.value2 = value2;
24-
return this;
25-
}
2616
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiversioncrd/MultiVersionCRDTestCustomResourceSpec2.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
public class MultiVersionCRDTestCustomResourceSpec2 {
44

5-
private int value1;
5+
private String value;
66

7-
public int getValue1() {
8-
return value1;
7+
public String getValue() {
8+
return value;
99
}
1010

11-
public MultiVersionCRDTestCustomResourceSpec2 setValue1(int value1) {
12-
this.value1 = value1;
11+
public MultiVersionCRDTestCustomResourceSpec2 setValue(String value) {
12+
this.value = value;
1313
return this;
1414
}
1515
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiversioncrd/MultiVersionCRDTestCustomResourceStatus1.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ public class MultiVersionCRDTestCustomResourceStatus1 {
77

88
private int value1;
99

10-
private int value2;
11-
1210
private List<String> reconciledBy = new ArrayList<>();
1311

1412
public int getValue1() {
@@ -20,15 +18,6 @@ public MultiVersionCRDTestCustomResourceStatus1 setValue1(int value1) {
2018
return this;
2119
}
2220

23-
public int getValue2() {
24-
return value2;
25-
}
26-
27-
public MultiVersionCRDTestCustomResourceStatus1 setValue2(int value2) {
28-
this.value2 = value2;
29-
return this;
30-
}
31-
3221
public List<String> getReconciledBy() {
3322
return reconciledBy;
3423
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiversioncrd/MultiVersionCRDTestReconciler1.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public UpdateControl<MultiVersionCRDTestCustomResource1> reconcile(
2222
log.info("Reconcile MultiVersionCRDTestCustomResource1: {}",
2323
resource.getMetadata().getName());
2424
resource.getStatus().setValue1(resource.getStatus().getValue1() + 1);
25-
resource.getStatus().setValue2(resource.getStatus().getValue2() + 1);
2625
if (!resource.getStatus().getReconciledBy().contains(getClass().getSimpleName())) {
2726
resource.getStatus().getReconciledBy().add(getClass().getSimpleName());
2827
}

0 commit comments

Comments
 (0)