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); + } + } }