This is an automated email from the ASF dual-hosted git repository. aldettinger 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 d72e4fb41b Improve test coverage for scheduler component. d72e4fb41b is described below commit d72e4fb41bae0ff0d9395e7fdbd4e7cbae96246c Author: svkcemk <souvik.kg...@gmail.com> AuthorDate: Mon Sep 26 13:41:09 2022 +0530 Improve test coverage for scheduler component. --- .../component/scheduler/it/SchedulerResource.java | 72 +++++++++++++++++++++- .../component/scheduler/it/SchedulerRoute.java | 29 ++++++++- .../component/scheduler/it/SchedulerTest.java | 40 +++++++++++- 3 files changed, 135 insertions(+), 6 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 a3971bfa8c..c5632a7438 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 @@ -26,14 +26,24 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; -import org.apache.camel.ProducerTemplate; - @Path("/scheduler") @ApplicationScoped public class SchedulerResource { @Inject - ProducerTemplate producerTemplate; + @Named("withDelayCounter") + AtomicInteger withDelayCounter; + + @Inject + @Named("useFixedDelayCounter") + AtomicInteger useFixedDelayCounter; + + @Named("withDelayRepeatCounter") + AtomicInteger withDelayRepeatCounter; + + @Inject + @Named("greedyCounter") + AtomicInteger greedyCounter; @Inject @Named("schedulerCounter") @@ -46,6 +56,34 @@ public class SchedulerResource { return schedulerCounter.get(); } + @Path("/get-delay-count") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int getCountDelay() { + return withDelayCounter.get(); + } + + @Path("/get-fixed-delay-count") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int getCountFixedDelay() { + return useFixedDelayCounter.get(); + } + + @Path("/get-repeat-count") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int getRepeatCount() { + return withDelayRepeatCounter.get(); + } + + @Path("/get-greedy-count") + @GET + @Produces(MediaType.TEXT_PLAIN) + public int getGreedyCount() { + return greedyCounter.get(); + } + @javax.enterprise.inject.Produces @ApplicationScoped @Named("schedulerCounter") @@ -53,4 +91,32 @@ public class SchedulerResource { return new AtomicInteger(); } + @javax.enterprise.inject.Produces + @ApplicationScoped + @Named("withDelayRepeatCounter") + AtomicInteger withDelayRepeatCounter() { + return new AtomicInteger(); + } + + @javax.enterprise.inject.Produces + @ApplicationScoped + @Named("withDelayCounter") + AtomicInteger withDelayCounter() { + return new AtomicInteger(); + } + + @javax.enterprise.inject.Produces + @ApplicationScoped + @Named("useFixedDelayCounter") + AtomicInteger useFixedDelayCounter() { + return new AtomicInteger(); + } + + @javax.enterprise.inject.Produces + @ApplicationScoped + @Named("greedyCounter") + AtomicInteger greedyCounter() { + return new AtomicInteger(); + } + } 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 98224bf9cf..096c934df1 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 @@ -31,10 +31,37 @@ public class SchedulerRoute extends RouteBuilder { @Named("schedulerCounter") AtomicInteger schedulerCounter; + @Inject + @Named("withDelayCounter") + AtomicInteger withDelayCounter; + + @Inject + @Named("useFixedDelayCounter") + AtomicInteger useFixedDelayCounter; + + @Inject + @Named("withDelayRepeatCounter") + AtomicInteger withDelayRepeatCounter; + + @Inject + @Named("greedyCounter") + AtomicInteger greedyCounter; + @Override public void configure() throws Exception { - from("scheduler:start?initialDelay=1") + from("scheduler:withInitialDelay?initialDelay=1") .process(e -> schedulerCounter.incrementAndGet()); + from("scheduler:withDelay?delay=100") + .process(e -> withDelayCounter.incrementAndGet()); + + from("scheduler:useFixedDelay?initialDelay=200&useFixedDelay=true") + .process(e -> useFixedDelayCounter.incrementAndGet()); + + from("scheduler:withDelayRepeat?delay=1&repeatCount=5") + .process(e -> withDelayRepeatCounter.incrementAndGet()); + + from("scheduler:greedy?delay=100&greedy=true") + .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 a76733516d..d74e1ea547 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 @@ -28,12 +28,48 @@ import static org.awaitility.Awaitility.await; class SchedulerTest { @Test - public void test() throws Exception { - // wait until the scheduler has run and return a counter that is > 0 + 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"); }); } + @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; + }); + + } + + @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; + }); + } + + @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; + }); + } + + @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; + }); + } + }