Skip to content

Commit 044e0be

Browse files
piotrpdevrobobario
authored andcommitted
fix: assumeThat Route CRD exists in CustomResourceValidationIT
Signed-off-by: Piotr Płaczek <piotrpdev@gmail.com>
1 parent 799d8f0 commit 044e0be

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

kroxylicious-operator/src/test/java/io/kroxylicious/kubernetes/operator/CustomResourceValidationIT.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.io.InputStream;
1111
import java.nio.file.Files;
1212
import java.nio.file.Path;
13+
import java.util.Objects;
1314
import java.util.stream.Stream;
1415

1516
import org.assertj.core.api.Assertions;
@@ -32,6 +33,7 @@
3233
import io.fabric8.kubernetes.client.KubernetesClientException;
3334
import io.fabric8.kubernetes.client.dsl.NamespaceableResource;
3435
import io.fabric8.kubernetes.client.dsl.NonDeletingOperation;
36+
import io.fabric8.openshift.api.model.Route;
3537
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
3638

3739
import io.kroxylicious.kubernetes.api.v1alpha1.KafkaProtocolFilter;
@@ -41,12 +43,14 @@
4143
import io.kroxylicious.kubernetes.api.v1alpha1.VirtualKafkaCluster;
4244

4345
import static org.assertj.core.api.Assertions.assertThat;
46+
import static org.assertj.core.api.Assumptions.assumeThat;
4447

4548
@EnabledIf(value = "io.kroxylicious.kubernetes.operator.OperatorTestUtils#isKubeClientAvailable", disabledReason = "no viable kube client available")
4649
class CustomResourceValidationIT {
4750

4851
public static final Namespace NAMESPACE = new NamespaceBuilder().withNewMetadata().withName("proxy-ns").endMetadata().build();
4952
public static final ObjectMapper YAML_MAPPER = new ObjectMapper(new YAMLFactory());
53+
private static boolean isOpenShiftRouteApiAvailable;
5054

5155
@BeforeAll
5256
static void beforeAll() {
@@ -57,6 +61,8 @@ static void beforeAll() {
5761
LocallyRunOperatorExtension.applyCrd(KafkaService.class, client);
5862
LocallyRunOperatorExtension.applyCrd(KafkaProxyIngress.class, client);
5963
client.namespaces().resource(NAMESPACE).createOr(NonDeletingOperation::update);
64+
65+
isOpenShiftRouteApiAvailable = client.supports(Route.class);
6066
}
6167

6268
@AfterAll
@@ -116,6 +122,7 @@ void testResourceValid(Path validYaml) {
116122
private static void testValid(Path validYaml) {
117123
try (InputStream is = Files.newInputStream(validYaml)) {
118124
NamespaceableResource<HasMetadata> resource = OperatorTestUtils.kubeClient().resource(is);
125+
assumeThatOpenShiftRouteApiAvailable(resource);
119126
Assertions.assertThatCode(resource::create).doesNotThrowAnyException();
120127
Assertions.assertThatCode(resource::delete).doesNotThrowAnyException();
121128
}
@@ -139,6 +146,7 @@ String resourceAsString() {
139146
@ParameterizedTest
140147
void testResourceInvalid(InvalidResource invalidYaml) {
141148
NamespaceableResource<HasMetadata> resource = OperatorTestUtils.kubeClient().resource(invalidYaml.resourceAsString());
149+
assumeThatOpenShiftRouteApiAvailable(resource);
142150
try {
143151
Assertions.assertThatThrownBy(resource::create).isInstanceOfSatisfying(KubernetesClientException.class, e -> {
144152
Status status = e.getStatus();
@@ -166,6 +174,7 @@ public static Stream<Path> testResourceValidStatus() {
166174
void testResourceValidStatus(Path validYaml) {
167175
try (InputStream is = Files.newInputStream(validYaml)) {
168176
NamespaceableResource<HasMetadata> resource = OperatorTestUtils.kubeClient().resource(is);
177+
assumeThatOpenShiftRouteApiAvailable(resource);
169178
Assertions.assertThatCode(resource::create).doesNotThrowAnyException();
170179
Assertions.assertThatCode(resource::patchStatus).doesNotThrowAnyException();
171180
Assertions.assertThatCode(resource::delete).doesNotThrowAnyException();
@@ -179,6 +188,7 @@ void testResourceValidStatus(Path validYaml) {
179188
@ParameterizedTest
180189
void testResourceInvalidStatus(InvalidResource invalidYaml) {
181190
NamespaceableResource<HasMetadata> resource = OperatorTestUtils.kubeClient().resource(invalidYaml.resourceAsString());
191+
assumeThatOpenShiftRouteApiAvailable(resource);
182192
try {
183193
Assertions.assertThatCode(resource::create).doesNotThrowAnyException();
184194
Assertions.assertThatThrownBy(resource::patchStatus).isInstanceOfSatisfying(KubernetesClientException.class, e -> {
@@ -198,4 +208,10 @@ void testResourceInvalidStatus(InvalidResource invalidYaml) {
198208
}
199209
}
200210

211+
static void assumeThatOpenShiftRouteApiAvailable(NamespaceableResource<HasMetadata> resource) {
212+
if (Objects.equals(resource.item().getKind(), "Route")) {
213+
assumeThat(isOpenShiftRouteApiAvailable).withFailMessage("kubernetes server is missing support for resource kind Route").isTrue();
214+
}
215+
}
216+
201217
}

0 commit comments

Comments
 (0)