From 51e7b189575a3014ff46e6f84c979d388c01fdd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 8 Apr 2026 14:05:39 +0200 Subject: [PATCH 1/2] improve: integration test for PerResourcePollingEventSource event propagation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../PerResourcePollingEventSourceIT.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java index fd93955b06..4d04b21f4f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java @@ -15,6 +15,8 @@ */ package io.javaoperatorsdk.operator.baseapi.perresourceeventsource; +import java.time.Duration; + import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -22,6 +24,7 @@ import io.javaoperatorsdk.annotation.Sample; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; +import static io.javaoperatorsdk.operator.baseapi.perresourceeventsource.PerResourcePollingEventSourceTestReconciler.POLL_PERIOD; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; @@ -49,13 +52,14 @@ class PerResourcePollingEventSourceIT { * works with the underling mechanisms in event source manager and other parts of the system. */ @Test - void fetchedAndReconciledMultipleTimes() { + void fetchedAndReconciledMultipleTimes() throws InterruptedException { operator.create(resource(NAME_1)); operator.create(resource(NAME_2)); var reconciler = operator.getReconcilerOfType(PerResourcePollingEventSourceTestReconciler.class); await() + .pollInterval(Duration.ofMillis(POLL_PERIOD)) .untilAsserted( () -> { assertThat(reconciler.getNumberOfExecutions(NAME_1)).isGreaterThan(2); @@ -63,6 +67,17 @@ void fetchedAndReconciledMultipleTimes() { assertThat(reconciler.getNumberOfExecutions(NAME_2)).isGreaterThan(2); assertThat(reconciler.getNumberOfFetchExecution(NAME_2)).isGreaterThan(2); }); + + operator.delete(resource(NAME_2)); + Thread.sleep(10000 + POLL_PERIOD); + + var fe1 = reconciler.getNumberOfFetchExecution(NAME_1); + var fe2 = reconciler.getNumberOfFetchExecution(NAME_2); + await() + .pollInterval(Duration.ofMillis(POLL_PERIOD)) + .untilAsserted( + () -> assertThat(reconciler.getNumberOfFetchExecution(NAME_1)).isGreaterThan(fe1 + 5)); + assertThat(reconciler.getNumberOfExecutions(NAME_2)).isLessThanOrEqualTo(fe2 + 1); } private PerResourceEventSourceCustomResource resource(String name) { From aaacc8d3f3aa4b981190943157598da4dffb076d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 8 Apr 2026 14:17:20 +0200 Subject: [PATCH 2/2] wip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../PerResourcePollingEventSourceIT.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java index 4d04b21f4f..97613c8f21 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java @@ -69,7 +69,7 @@ void fetchedAndReconciledMultipleTimes() throws InterruptedException { }); operator.delete(resource(NAME_2)); - Thread.sleep(10000 + POLL_PERIOD); + Thread.sleep(1000 + POLL_PERIOD); var fe1 = reconciler.getNumberOfFetchExecution(NAME_1); var fe2 = reconciler.getNumberOfFetchExecution(NAME_2); @@ -77,7 +77,7 @@ void fetchedAndReconciledMultipleTimes() throws InterruptedException { .pollInterval(Duration.ofMillis(POLL_PERIOD)) .untilAsserted( () -> assertThat(reconciler.getNumberOfFetchExecution(NAME_1)).isGreaterThan(fe1 + 5)); - assertThat(reconciler.getNumberOfExecutions(NAME_2)).isLessThanOrEqualTo(fe2 + 1); + assertThat(reconciler.getNumberOfFetchExecution(NAME_2)).isEqualTo(fe2); } private PerResourceEventSourceCustomResource resource(String name) {