You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2022/10/12 16:43:53 UTC

[camel-quarkus] branch main updated: Improve test coverage for scheduler component.

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