Skip to content

Commit b1349ba

Browse files
committed
fix: replace label selector mock server test with IT
1 parent 819f4ad commit b1349ba

File tree

5 files changed

+101
-169
lines changed

5 files changed

+101
-169
lines changed

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/CustomResourceSelectorTest.java

-169
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package io.javaoperatorsdk.operator;
2+
3+
import java.time.Duration;
4+
import java.util.Collections;
5+
import java.util.Map;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.jupiter.api.extension.RegisterExtension;
9+
10+
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
11+
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
12+
import io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestCustomResource;
13+
import io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler;
14+
15+
import static io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler.LABEL_KEY;
16+
import static io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler.LABEL_VALUE;
17+
import static org.assertj.core.api.Assertions.assertThat;
18+
import static org.awaitility.Awaitility.await;
19+
20+
class LabelSelectorIT {
21+
22+
@RegisterExtension
23+
LocallyRunOperatorExtension operator =
24+
LocallyRunOperatorExtension.builder().withReconciler(new LabelSelectorTestReconciler())
25+
.build();
26+
27+
28+
@Test
29+
void filtersCustomResourceByLabel() {
30+
operator.create(resource("r1", true));
31+
operator.create(resource("r2", false));
32+
33+
await().pollDelay(Duration.ofMillis(150)).untilAsserted(() -> {
34+
assertThat(
35+
operator.getReconcilerOfType(LabelSelectorTestReconciler.class).getNumberOfExecutions())
36+
.isEqualTo(1);
37+
});
38+
}
39+
40+
LabelSelectorTestCustomResource resource(String name, boolean addLabel) {
41+
var res = new LabelSelectorTestCustomResource();
42+
res.setMetadata(new ObjectMetaBuilder()
43+
.withName(name)
44+
.withLabels(addLabel ? Map.of(LABEL_KEY, LABEL_VALUE)
45+
: Collections.emptyMap())
46+
.build());
47+
return res;
48+
}
49+
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.javaoperatorsdk.operator.sample.labelselector;
2+
3+
import io.fabric8.kubernetes.api.model.Namespaced;
4+
import io.fabric8.kubernetes.client.CustomResource;
5+
import io.fabric8.kubernetes.model.annotation.Group;
6+
import io.fabric8.kubernetes.model.annotation.ShortNames;
7+
import io.fabric8.kubernetes.model.annotation.Version;
8+
9+
@Group("sample.javaoperatorsdk")
10+
@Version("v1")
11+
@ShortNames("lst")
12+
public class LabelSelectorTestCustomResource
13+
extends CustomResource<Void, LabelSelectorTestCustomResourceStatus>
14+
implements Namespaced {
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package io.javaoperatorsdk.operator.sample.labelselector;
2+
3+
public class LabelSelectorTestCustomResourceStatus {
4+
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.javaoperatorsdk.operator.sample.labelselector;
2+
3+
import java.util.concurrent.atomic.AtomicInteger;
4+
5+
import io.javaoperatorsdk.operator.api.reconciler.*;
6+
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
7+
8+
import static io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler.LABEL_KEY;
9+
import static io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler.LABEL_VALUE;
10+
11+
@ControllerConfiguration(labelSelector = LABEL_KEY + "=" + LABEL_VALUE)
12+
public class LabelSelectorTestReconciler
13+
implements Reconciler<LabelSelectorTestCustomResource>, TestExecutionInfoProvider {
14+
15+
public static final String LABEL_KEY = "app";
16+
public static final String LABEL_VALUE = "myapp";
17+
18+
private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
19+
20+
@Override
21+
public UpdateControl<LabelSelectorTestCustomResource> reconcile(
22+
LabelSelectorTestCustomResource resource, Context<LabelSelectorTestCustomResource> context) {
23+
numberOfExecutions.addAndGet(1);
24+
return UpdateControl.noUpdate();
25+
}
26+
27+
public int getNumberOfExecutions() {
28+
return numberOfExecutions.get();
29+
}
30+
31+
}

0 commit comments

Comments
 (0)