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

ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new e3c810d214 Fix : flakiness of Scheduler integration-tests.
e3c810d214 is described below

commit e3c810d214dc70b07a18f10015ed9bdcf1839ade
Author: svkcemk <souvik.kg...@gmail.com>
AuthorDate: Thu Nov 3 16:26:07 2022 +0530

    Fix : flakiness of Scheduler integration-tests.
---
 .../component/scheduler/it/SchedulerResource.java  |  17 ++++
 .../component/scheduler/it/SchedulerRoute.java     |  10 +-
 .../component/scheduler/it/SchedulerTest.java      | 106 ++++++++++++++++-----
 3 files changed, 103 insertions(+), 30 deletions(-)

diff --git 
a/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerResource.java
 
b/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerResource.java
index c5632a7438..675e264307 100644
--- 
a/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerResource.java
+++ 
b/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerResource.java
@@ -22,14 +22,21 @@ import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 import javax.inject.Named;
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
+import org.apache.camel.CamelContext;
+
 @Path("/scheduler")
 @ApplicationScoped
 public class SchedulerResource {
 
+    @Inject
+    CamelContext context;
+
     @Inject
     @Named("withDelayCounter")
     AtomicInteger withDelayCounter;
@@ -119,4 +126,14 @@ public class SchedulerResource {
         return new AtomicInteger();
     }
 
+    @POST
+    @Path("route/{route}/{enable}")
+    public void mangeRoutes(@PathParam("route") String route, 
@PathParam("enable") boolean enable) throws Exception {
+        if (enable) {
+            context.getRouteController().startRoute(route);
+        } else {
+            context.getRouteController().stopRoute(route);
+        }
+    }
+
 }
diff --git 
a/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerRoute.java
 
b/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerRoute.java
index 096c934df1..6995fa0f5b 100644
--- 
a/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerRoute.java
+++ 
b/integration-test-groups/foundation/scheduler/src/main/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerRoute.java
@@ -49,19 +49,19 @@ public class SchedulerRoute extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from("scheduler:withInitialDelay?initialDelay=1")
+        
from("scheduler:withInitialDelay?initialDelay=1").routeId("withInitialDelay").noAutoStartup()
                 .process(e -> schedulerCounter.incrementAndGet());
 
-        from("scheduler:withDelay?delay=100")
+        
from("scheduler:withDelay?delay=100").routeId("withDelay").noAutoStartup()
                 .process(e -> withDelayCounter.incrementAndGet());
 
-        from("scheduler:useFixedDelay?initialDelay=200&useFixedDelay=true")
+        
from("scheduler:useFixedDelay?initialDelay=200&useFixedDelay=true").routeId("useFixedDelay").noAutoStartup()
                 .process(e -> useFixedDelayCounter.incrementAndGet());
 
-        from("scheduler:withDelayRepeat?delay=1&repeatCount=5")
+        
from("scheduler:withDelayRepeat?delay=1&repeatCount=5").routeId("withDelayRepeat").noAutoStartup()
                 .process(e -> withDelayRepeatCounter.incrementAndGet());
 
-        from("scheduler:greedy?delay=100&greedy=true")
+        
from("scheduler:greedy?delay=100&greedy=true").routeId("greedy").noAutoStartup()
                 .process(e -> greedyCounter.incrementAndGet());
     }
 }
diff --git 
a/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerTest.java
 
b/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerTest.java
index d74e1ea547..65be9975f0 100644
--- 
a/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerTest.java
+++ 
b/integration-test-groups/foundation/scheduler/src/test/java/org/apache/camel/quarkus/component/scheduler/it/SchedulerTest.java
@@ -29,47 +29,103 @@ class SchedulerTest {
 
     @Test
     public void testInitialDelay() throws Exception {
-        await().atMost(5, TimeUnit.SECONDS).until(() -> {
-            String body = 
RestAssured.get("/scheduler/get").then().statusCode(200).extract().body().asString();
-            return !body.equals("0");
-        });
+        try {
+            RestAssured.given()
+                    .post("/scheduler/route/withInitialDelay/true")
+                    .then()
+                    .statusCode(204);
+            await().atMost(5, TimeUnit.SECONDS).until(() -> {
+                String body = 
RestAssured.get("/scheduler/get").then().statusCode(200).extract().body().asString();
+                return !body.equals("0");
+            });
+        } finally {
+            RestAssured.given()
+                    .post("/scheduler/route/withInitialDelay/false")
+                    .then()
+                    .statusCode(204);
+        }
     }
 
     @Test
     public void testDelay() throws Exception {
-        await().atMost(2, TimeUnit.SECONDS).until(() -> {
-            String body = 
RestAssured.get("/scheduler/get-delay-count").then().statusCode(200).extract().body()
-                    .asString();
-            return Integer.parseInt(body) > 2;
-        });
+        try {
+            RestAssured.given()
+                    .post("/scheduler/route/withDelay/true")
+                    .then()
+                    .statusCode(204);
+            await().atMost(10, TimeUnit.SECONDS).until(() -> {
+                String body = 
RestAssured.get("/scheduler/get-delay-count").then().statusCode(200).extract().body()
+                        .asString();
+                return Integer.parseInt(body) > 2;
+            });
+        } finally {
+            RestAssured.given()
+                    .post("/scheduler/route/withDelay/false")
+                    .then()
+                    .statusCode(204);
+        }
 
     }
 
     @Test
     public void testFixedDelay() throws Exception {
-        await().atMost(2, TimeUnit.SECONDS).until(() -> {
-            String body = 
RestAssured.get("/scheduler/get-fixed-delay-count").then().statusCode(200).extract().body()
-                    .asString();
-            return Integer.parseInt(body) > 2;
-        });
+        try {
+            RestAssured.given()
+                    .post("/scheduler/route/useFixedDelay/true")
+                    .then()
+                    .statusCode(204);
+            await().atMost(2, TimeUnit.SECONDS).until(() -> {
+                String body = 
RestAssured.get("/scheduler/get-fixed-delay-count").then().statusCode(200).extract()
+                        .body()
+                        .asString();
+                return Integer.parseInt(body) > 2;
+            });
+        } finally {
+            RestAssured.given()
+                    .post("/scheduler/route/useFixedDelay/flase")
+                    .then()
+                    .statusCode(204);
+        }
     }
 
     @Test
     public void testDelayWithRepeat() throws Exception {
-        await().atMost(4, TimeUnit.SECONDS).until(() -> {
-            String body = 
RestAssured.get("/scheduler/get-repeat-count").then().statusCode(200).extract().body()
-                    .asString();
-            return Integer.parseInt(body) >= 4;
-        });
+        try {
+            RestAssured.given()
+                    .post("/scheduler/route/withDelayRepeat/true")
+                    .then()
+                    .statusCode(204);
+            await().atMost(4, TimeUnit.SECONDS).until(() -> {
+                String body = 
RestAssured.get("/scheduler/get-repeat-count").then().statusCode(200).extract().body()
+                        .asString();
+                return Integer.parseInt(body) >= 4;
+            });
+        } finally {
+            RestAssured.given()
+                    .post("/scheduler/route/withDelayRepeat/false")
+                    .then()
+                    .statusCode(204);
+        }
     }
 
     @Test
     public void testGreedyScheduler() throws Exception {
-        await().atMost(1, TimeUnit.SECONDS).until(() -> {
-            String body = 
RestAssured.get("/scheduler/get-greedy-count").then().statusCode(200).extract().body()
-                    .asString();
-            return Integer.parseInt(body) > 10;
-        });
-    }
+        try {
+            RestAssured.given()
+                    .post("/scheduler/route/greedy/true")
+                    .then()
+                    .statusCode(204);
+            await().atMost(2, TimeUnit.SECONDS).until(() -> {
+                String body = 
RestAssured.get("/scheduler/get-greedy-count").then().statusCode(200).extract().body()
+                        .asString();
+                return Integer.parseInt(body) > 10;
+            });
+        } finally {
+            RestAssured.given()
+                    .post("/scheduler/route/greedy/false")
+                    .then()
+                    .statusCode(204);
+        }
 
+    }
 }

Reply via email to