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