diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java index 75597643bf..2757ca156b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java @@ -20,6 +20,9 @@ class SubResourceUpdateIT { + public static final int WAIT_AFTER_EXECUTION = 500; + public static final int EVENT_RECEIVE_WAIT = 200; + @RegisterExtension OperatorExtension operator = OperatorExtension.builder() @@ -34,7 +37,7 @@ void updatesSubResourceStatus() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -49,7 +52,7 @@ void updatesSubResourceStatusNoFinalizer() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -64,7 +67,7 @@ void ifNoFinalizerPresentFirstAddsTheFinalizerThenExecutesControllerAgain() { awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(200); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(2); @@ -81,13 +84,15 @@ void updateCustomResourceAfterSubResourceChange() { SubResourceTestCustomResource resource = createTestCustomResource("1"); operator.create(SubResourceTestCustomResource.class, resource); + // waits for the resource to start processing + waitXms(EVENT_RECEIVE_WAIT); resource.getSpec().setValue("new value"); operator.resources(SubResourceTestCustomResource.class).createOrReplace(resource); awaitStatusUpdated(resource.getMetadata().getName()); // wait for sure, there are no more events - waitXms(500); + waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(3); @@ -121,7 +126,7 @@ public SubResourceTestCustomResource createTestCustomResource(String id) { return resource; } - private void waitXms(int x) { + public static void waitXms(int x) { try { Thread.sleep(x); } catch (InterruptedException e) { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java index 081100beb3..8bfe6dd67d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/subresource/SubResourceTestCustomReconciler.java @@ -12,16 +12,21 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; +import static io.javaoperatorsdk.operator.support.TestUtils.waitXms; + @ControllerConfiguration(generationAwareEventProcessing = false) public class SubResourceTestCustomReconciler implements Reconciler, TestExecutionInfoProvider { + public static final int RECONCILER_MIN_EXEC_TIME = 300; + public static final String FINALIZER_NAME = ReconcilerUtils.getDefaultFinalizerName(SubResourceTestCustomResource.class); private static final Logger log = LoggerFactory.getLogger(SubResourceTestCustomReconciler.class); private final AtomicInteger numberOfExecutions = new AtomicInteger(0); + @Override public UpdateControl reconcile( SubResourceTestCustomResource resource, Context context) { @@ -33,7 +38,7 @@ public UpdateControl reconcile( ensureStatusExists(resource); resource.getStatus().setState(SubResourceTestCustomResourceStatus.State.SUCCESS); - + waitXms(RECONCILER_MIN_EXEC_TIME); return UpdateControl.updateStatus(resource); }