Skip to content

Commit 7235256

Browse files
committed
refactor: use jUnit 5 exception checking style
1 parent 39d6e23 commit 7235256

File tree

1 file changed

+52
-19
lines changed

1 file changed

+52
-19
lines changed

Diff for: operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java

+52-19
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import io.fabric8.kubernetes.client.CustomResource;
66
import io.javaoperatorsdk.operator.Operator.ControllerManager;
7-
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
7+
import io.javaoperatorsdk.operator.api.ResourceController;
88
import io.javaoperatorsdk.operator.api.config.DefaultControllerConfiguration;
99
import io.javaoperatorsdk.operator.processing.ConfiguredController;
1010
import io.javaoperatorsdk.operator.sample.simple.DuplicateCRController;
@@ -13,31 +13,64 @@
1313
import io.javaoperatorsdk.operator.sample.simple.TestCustomResourceControllerV2;
1414
import io.javaoperatorsdk.operator.sample.simple.TestCustomResourceV2;
1515

16+
import static org.junit.jupiter.api.Assertions.assertThrows;
17+
import static org.junit.jupiter.api.Assertions.assertTrue;
18+
1619
public class ControllerManagerTest {
1720

18-
@Test(expected = OperatorException.class)
21+
@Test
1922
public void shouldNotAddMultipleControllersForSameCustomResource() {
20-
final var controllerManager = new ControllerManager();
21-
controllerManager
22-
.add(new ConfiguredController<>(new TestCustomResourceController(null), config(
23-
TestCustomResource.class), null));
24-
controllerManager.add(new ConfiguredController<>(new DuplicateCRController(),
25-
config(TestCustomResource.class), null));
23+
final var registered = new TestControllerConfiguration<>(new TestCustomResourceController(null),
24+
TestCustomResource.class);
25+
final var duplicated =
26+
new TestControllerConfiguration<>(new DuplicateCRController(), TestCustomResource.class);
27+
28+
checkException(registered, duplicated);
2629
}
2730

28-
@Test(expected = OperatorException.class)
31+
@Test
2932
public void addingMultipleControllersForCustomResourcesWithDifferentVersionsShouldNotWork() {
30-
final var controllerManager = new ControllerManager();
31-
controllerManager
32-
.add(new ConfiguredController<>(new TestCustomResourceController(null),
33-
config(TestCustomResource.class), null));
34-
controllerManager
35-
.add(new ConfiguredController<>(new TestCustomResourceControllerV2(), config(
36-
TestCustomResourceV2.class), null));
33+
final var registered = new TestControllerConfiguration<>(new TestCustomResourceController(null),
34+
TestCustomResource.class);
35+
final var duplicated = new TestControllerConfiguration<>(new TestCustomResourceControllerV2(),
36+
TestCustomResourceV2.class);
37+
38+
checkException(registered, duplicated);
39+
3740
}
3841

39-
private <R extends CustomResource<?, ?>> ControllerConfiguration<R> config(Class<R> crClass) {
40-
return new DefaultControllerConfiguration<>(null, crClass.getSimpleName() + "Controller",
41-
CustomResource.getCRDName(crClass), null, false, null, null, null, null, crClass, null);
42+
private <T extends CustomResource<?, ?>, U extends CustomResource<?, ?>> void checkException(
43+
TestControllerConfiguration<T> registered,
44+
TestControllerConfiguration<U> duplicated) {
45+
final var exception = assertThrows(OperatorException.class, () -> {
46+
final var controllerManager = new ControllerManager();
47+
controllerManager.add(new ConfiguredController<>(registered.controller, registered, null));
48+
controllerManager.add(new ConfiguredController<>(duplicated.controller, duplicated, null));
49+
});
50+
final var msg = exception.getMessage();
51+
assertTrue(
52+
msg.contains("Cannot register controller '" + duplicated.getControllerName() + "'")
53+
&& msg.contains(registered.getControllerName())
54+
&& msg.contains(registered.getCRDName()));
55+
}
56+
57+
private static class TestControllerConfiguration<R extends CustomResource<?, ?>>
58+
extends DefaultControllerConfiguration<R> {
59+
private final ResourceController<R> controller;
60+
61+
public TestControllerConfiguration(ResourceController<R> controller, Class<R> crClass) {
62+
super(null, getControllerName(controller),
63+
CustomResource.getCRDName(crClass), null, false, null, null, null, null, crClass, null);
64+
this.controller = controller;
65+
}
66+
67+
static <R extends CustomResource<?, ?>> String getControllerName(
68+
ResourceController<R> controller) {
69+
return controller.getClass().getSimpleName() + "Controller";
70+
}
71+
72+
private String getControllerName() {
73+
return getControllerName(controller);
74+
}
4275
}
4376
}

0 commit comments

Comments
 (0)