You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/07/25 08:01:10 UTC

[camel] branch myq created (now 518f2eb0755)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch myq
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 518f2eb0755 camel-quartz - Make test 20 sec faster

This branch includes the following new commits:

     new c9cfb4b6d4f camel-quartz: Use awailability instead of thread sleep in unit tests
     new 518f2eb0755 camel-quartz - Make test 20 sec faster

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[camel] 01/02: camel-quartz: Use awailability instead of thread sleep in unit tests

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch myq
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c9cfb4b6d4f8a2d151e353ab31be8561851f7c6a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jul 25 09:53:17 2023 +0200

    camel-quartz: Use awailability instead of thread sleep in unit tests
---
 .../quartz/SimpleScheduledRoutePolicyTest.java     | 79 +++++++++++++++-------
 1 file changed, 55 insertions(+), 24 deletions(-)

diff --git a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
index 603bf57b9d2..b86a9b066cd 100644
--- a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
+++ b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
@@ -20,13 +20,14 @@ import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelExecutionException;
+import org.apache.camel.Consumer;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.direct.DirectComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.quartz.QuartzComponent;
 import org.apache.camel.support.service.ServiceHelper;
-import org.junit.jupiter.api.Disabled;
+import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
@@ -63,8 +64,10 @@ public class SimpleScheduledRoutePolicyTest {
             context.start();
             context.getRouteController().stopRoute("test", 1000, TimeUnit.MILLISECONDS);
 
-            Thread.sleep(5000);
-            assertSame(ServiceStatus.Started, context.getRouteController().getRouteStatus("test"));
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertSame(ServiceStatus.Started, context.getRouteController().getRouteStatus("test"));
+            });
+
             template.sendBody("direct:start", "Ready or not, Here, I come");
 
             context.getComponent("quartz", QuartzComponent.class).stop();
@@ -95,17 +98,13 @@ public class SimpleScheduledRoutePolicyTest {
             });
             context.start();
 
-            Thread.sleep(4000);
+            // wait for route to stop
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertTrue(ServiceHelper.isStopped(context.getRoute("test").getConsumer()));
+            });
 
-            assertSame(ServiceStatus.Stopped, context.getRouteController().getRouteStatus("test"));
+            assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"));
 
-            boolean consumerStopped = false;
-            try {
-                template.sendBody("direct:start", "Ready or not, Here, I come");
-            } catch (CamelExecutionException e) {
-                consumerStopped = true;
-            }
-            assertTrue(consumerStopped);
             context.getComponent("quartz", QuartzComponent.class).stop();
         }
     }
@@ -133,10 +132,13 @@ public class SimpleScheduledRoutePolicyTest {
             });
             context.start();
 
-            Thread.sleep(4000);
+            // wait for route to suspend
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertTrue(ServiceHelper.isSuspended(context.getRoute("test").getConsumer()));
+            });
 
-            boolean consumerSuspended = false;
             assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"));
+
             context.getComponent("quartz", QuartzComponent.class).stop();
         }
     }
@@ -172,7 +174,11 @@ public class SimpleScheduledRoutePolicyTest {
             assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"),
                     "Should have thrown an exception");
 
-            Thread.sleep(4000);
+            // wait for route to resume/start
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
+            });
+
             template.sendBody("direct:start", "Ready or not, Here, I come");
 
             context.getComponent("quartz", QuartzComponent.class).stop();
@@ -183,7 +189,6 @@ public class SimpleScheduledRoutePolicyTest {
     @Nested
     class SimpleTest5 extends NoBuilderTest {
 
-        @Disabled("Currently this test is flaky")
         @Test
         public void testScheduledSuspendAndResumeRoutePolicy() throws Exception {
             MockEndpoint success = context.getEndpoint("mock:success", MockEndpoint.class);
@@ -211,12 +216,20 @@ public class SimpleScheduledRoutePolicyTest {
                 }
             });
             context.start();
-            Thread.sleep(1000);
+
+            // wait for route to suspend
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertTrue(ServiceHelper.isSuspended(context.getRoute("test").getConsumer()));
+            });
 
             assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"),
                     "Should have thrown an exception");
 
-            Thread.sleep(4000);
+            // wait for route to resume/start
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
+            });
+
             template.sendBody("direct:start", "Ready or not, Here, I come");
 
             context.getComponent("quartz", QuartzComponent.class).stop();
@@ -252,12 +265,24 @@ public class SimpleScheduledRoutePolicyTest {
                 }
             });
             context.start();
-            Thread.sleep(1000);
+
+            // policy will suspend consumer after approx 1 second
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(
+                    () -> {
+                        Consumer consumer = context.getRoute("test").getConsumer();
+                        return ServiceHelper.isSuspended(consumer);
+                    });
 
             assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"),
                     "Should have thrown an exception");
 
-            Thread.sleep(4000);
+            // policy will start consumer after approx 4 second
+            Awaitility.await().atMost(10, TimeUnit.SECONDS).until(
+                    () -> {
+                        Consumer consumer = context.getRoute("test").getConsumer();
+                        return ServiceHelper.isStarted(consumer);
+                    });
+
             template.sendBody("direct:start", "Ready or not, Here, I come");
 
             context.getComponent("quartz", QuartzComponent.class).stop();
@@ -291,8 +316,11 @@ public class SimpleScheduledRoutePolicyTest {
                 });
                 context.start();
 
-                Thread.sleep(5000);
-                assertSame(ServiceStatus.Started, context.getRouteController().getRouteStatus("test"));
+                // wait for route to start
+                Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                    assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
+                });
+
                 template.sendBody("direct:start", "Ready or not, Here, I come");
 
                 context.getComponent("quartz", QuartzComponent.class).stop();
@@ -336,8 +364,11 @@ public class SimpleScheduledRoutePolicyTest {
 
                 template.sendBody("direct:start", "Hello World");
 
-                Thread.sleep(5000);
-                assertSame(ServiceStatus.Started, context.getRouteController().getRouteStatus("dynamic"));
+                // wait for route to start
+                Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                    assertTrue(ServiceHelper.isStarted(context.getRoute("dynamic").getConsumer()));
+                });
+
                 template.sendBody("direct:dynamic", "Ready or not, Here, I come");
 
                 context.getComponent("quartz", QuartzComponent.class).stop();


[camel] 02/02: camel-quartz - Make test 20 sec faster

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch myq
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 518f2eb0755f3a799f816def39058ebb1abecebc
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jul 25 09:59:06 2023 +0200

    camel-quartz - Make test 20 sec faster
---
 .../quartz/SimpleScheduledRoutePolicyTest.java     | 58 +++++++++++-----------
 1 file changed, 28 insertions(+), 30 deletions(-)

diff --git a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
index b86a9b066cd..f4806aa62a2 100644
--- a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
+++ b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
@@ -50,10 +50,10 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long startTime = System.currentTimeMillis() + 3000L;
+                    long startTime = System.currentTimeMillis() + 500;
                     policy.setRouteStartDate(new Date(startTime));
                     policy.setRouteStartRepeatCount(1);
-                    policy.setRouteStartRepeatInterval(3000);
+                    policy.setRouteStartRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -62,9 +62,9 @@ public class SimpleScheduledRoutePolicyTest {
                 }
             });
             context.start();
-            context.getRouteController().stopRoute("test", 1000, TimeUnit.MILLISECONDS);
+            context.getRouteController().stopRoute("test");
 
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertSame(ServiceStatus.Started, context.getRouteController().getRouteStatus("test"));
             });
 
@@ -85,10 +85,10 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long startTime = System.currentTimeMillis() + 3000;
+                    long startTime = System.currentTimeMillis() + 500;
                     policy.setRouteStopDate(new Date(startTime));
                     policy.setRouteStopRepeatCount(1);
-                    policy.setRouteStopRepeatInterval(3000);
+                    policy.setRouteStopRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -99,7 +99,7 @@ public class SimpleScheduledRoutePolicyTest {
             context.start();
 
             // wait for route to stop
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertTrue(ServiceHelper.isStopped(context.getRoute("test").getConsumer()));
             });
 
@@ -119,10 +119,10 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long startTime = System.currentTimeMillis() + 3000L;
+                    long startTime = System.currentTimeMillis() + 500;
                     policy.setRouteSuspendDate(new Date(startTime));
                     policy.setRouteSuspendRepeatCount(1);
-                    policy.setRouteSuspendRepeatInterval(3000);
+                    policy.setRouteSuspendRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -133,7 +133,7 @@ public class SimpleScheduledRoutePolicyTest {
             context.start();
 
             // wait for route to suspend
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertTrue(ServiceHelper.isSuspended(context.getRoute("test").getConsumer()));
             });
 
@@ -156,10 +156,10 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long startTime = System.currentTimeMillis() + 3000L;
+                    long startTime = System.currentTimeMillis() + 1000;
                     policy.setRouteResumeDate(new Date(startTime));
                     policy.setRouteResumeRepeatCount(1);
-                    policy.setRouteResumeRepeatInterval(3000);
+                    policy.setRouteResumeRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -175,7 +175,7 @@ public class SimpleScheduledRoutePolicyTest {
                     "Should have thrown an exception");
 
             // wait for route to resume/start
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
             });
 
@@ -200,14 +200,14 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long suspendTime = System.currentTimeMillis() + 1000L;
+                    long suspendTime = System.currentTimeMillis() + 500;
                     policy.setRouteSuspendDate(new Date(suspendTime));
                     policy.setRouteSuspendRepeatCount(0);
-                    policy.setRouteSuspendRepeatInterval(3000);
-                    long resumeTime = System.currentTimeMillis() + 4000L;
+                    policy.setRouteSuspendRepeatInterval(1000);
+                    long resumeTime = System.currentTimeMillis() + 2000;
                     policy.setRouteResumeDate(new Date(resumeTime));
                     policy.setRouteResumeRepeatCount(1);
-                    policy.setRouteResumeRepeatInterval(3000);
+                    policy.setRouteResumeRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -218,7 +218,7 @@ public class SimpleScheduledRoutePolicyTest {
             context.start();
 
             // wait for route to suspend
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertTrue(ServiceHelper.isSuspended(context.getRoute("test").getConsumer()));
             });
 
@@ -226,7 +226,7 @@ public class SimpleScheduledRoutePolicyTest {
                     "Should have thrown an exception");
 
             // wait for route to resume/start
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                 assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
             });
 
@@ -250,13 +250,13 @@ public class SimpleScheduledRoutePolicyTest {
             context.addRoutes(new RouteBuilder() {
                 public void configure() {
                     SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                    long suspendTime = System.currentTimeMillis() + 1000L;
+                    long suspendTime = System.currentTimeMillis() + 500;
                     policy.setRouteSuspendDate(new Date(suspendTime));
                     policy.setRouteSuspendRepeatCount(0);
-                    long startTime = System.currentTimeMillis() + 4000L;
+                    long startTime = System.currentTimeMillis() + 2000;
                     policy.setRouteStartDate(new Date(startTime));
                     policy.setRouteResumeRepeatCount(1);
-                    policy.setRouteResumeRepeatInterval(3000);
+                    policy.setRouteResumeRepeatInterval(1000);
 
                     from("direct:start")
                             .routeId("test")
@@ -266,7 +266,6 @@ public class SimpleScheduledRoutePolicyTest {
             });
             context.start();
 
-            // policy will suspend consumer after approx 1 second
             Awaitility.await().atMost(5, TimeUnit.SECONDS).until(
                     () -> {
                         Consumer consumer = context.getRoute("test").getConsumer();
@@ -276,8 +275,7 @@ public class SimpleScheduledRoutePolicyTest {
             assertThrows(CamelExecutionException.class, () -> template.sendBody("direct:start", "Ready or not, Here, I come"),
                     "Should have thrown an exception");
 
-            // policy will start consumer after approx 4 second
-            Awaitility.await().atMost(10, TimeUnit.SECONDS).until(
+            Awaitility.await().atMost(5, TimeUnit.SECONDS).until(
                     () -> {
                         Consumer consumer = context.getRoute("test").getConsumer();
                         return ServiceHelper.isStarted(consumer);
@@ -302,10 +300,10 @@ public class SimpleScheduledRoutePolicyTest {
                 context.addRoutes(new RouteBuilder() {
                     public void configure() {
                         SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                        long startTime = System.currentTimeMillis() + 3000L;
+                        long startTime = System.currentTimeMillis() + 500;
                         policy.setRouteStartDate(new Date(startTime));
                         policy.setRouteStartRepeatCount(1);
-                        policy.setRouteStartRepeatInterval(3000);
+                        policy.setRouteStartRepeatInterval(1000);
 
                         from("direct:start")
                                 .routeId("test")
@@ -317,7 +315,7 @@ public class SimpleScheduledRoutePolicyTest {
                 context.start();
 
                 // wait for route to start
-                Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                     assertTrue(ServiceHelper.isStarted(context.getRoute("test").getConsumer()));
                 });
 
@@ -347,7 +345,7 @@ public class SimpleScheduledRoutePolicyTest {
                                     @Override
                                     public void configure() throws Exception {
                                         SimpleScheduledRoutePolicy policy = new SimpleScheduledRoutePolicy();
-                                        long startTime = System.currentTimeMillis() + 3000L;
+                                        long startTime = System.currentTimeMillis() + 500;
                                         policy.setRouteStartDate(new Date(startTime));
 
                                         from("direct:dynamic")
@@ -365,7 +363,7 @@ public class SimpleScheduledRoutePolicyTest {
                 template.sendBody("direct:start", "Hello World");
 
                 // wait for route to start
-                Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+                Awaitility.await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
                     assertTrue(ServiceHelper.isStarted(context.getRoute("dynamic").getConsumer()));
                 });