You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2022/04/28 10:05:55 UTC

[camel-quarkus] 01/06: Fix MockEndpoint usage in Infinispan tests

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

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

commit 049bdea809b8663d53c42d2ed5c7b4c28765367c
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Apr 25 15:49:02 2022 +0100

    Fix MockEndpoint usage in Infinispan tests
---
 .../component/infinispan/InfinispanResources.java  | 119 +++++++++++----------
 .../component/infinispan/InfinispanRoutes.java     |  16 +--
 .../component/infinispan/InfinispanTest.java       |  54 +++-------
 3 files changed, 81 insertions(+), 108 deletions(-)

diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
index d852091953..8ffc16dee1 100644
--- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
+++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanResources.java
@@ -20,10 +20,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
@@ -82,13 +85,25 @@ public class InfinispanResources {
     }
 
     @Path("/aggregate")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public void aggregate(@QueryParam("component") String component, String content) {
-        String uri = component.equals("infinispan") ? "direct:camelAggregation" : "direct:quarkusAggregation";
-        Map<String, Object> headers = getCommonHeaders(component);
-        headers.put(CORRELATOR_HEADER, CORRELATOR_HEADER);
-        template.sendBodyAndHeaders(uri, content, headers);
+    @GET
+    public void aggregate(@QueryParam("component") String component) throws InterruptedException {
+        String mockEndpointUri = component.equals("infinispan") ? "mock:camelAggregationResult"
+                : "mock:quarkusAggregationResult";
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(2);
+        mockEndpoint.expectedBodiesReceived(1 + 3 + 4 + 5, 6 + 7 + 20 + 21);
+
+        try {
+            String uri = component.equals("infinispan") ? "direct:camelAggregation" : "direct:quarkusAggregation";
+            Map<String, Object> headers = getCommonHeaders(component);
+            headers.put(CORRELATOR_HEADER, CORRELATOR_HEADER);
+
+            Stream.of(1, 3, 4, 5, 6, 7, 20, 21).forEach(value -> template.sendBodyAndHeaders(uri, value, headers));
+
+            mockEndpoint.assertIsSatisfied(15000);
+        } finally {
+            mockEndpoint.reset();
+        }
     }
 
     @Path("/clear")
@@ -141,6 +156,27 @@ public class InfinispanResources {
         return template.requestBodyAndHeaders("direct:containsValue", value, headers, Boolean.class);
     }
 
+    @Path("/event/verify")
+    @GET
+    public void listener(
+            @QueryParam("component") String component,
+            @QueryParam("mockEndpointUri") String mockEndpointUri,
+            String content) throws InterruptedException {
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(1);
+        mockEndpoint.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CLIENT_CACHE_ENTRY_CREATED");
+        mockEndpoint.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
+        mockEndpoint.message(0).header(InfinispanConstants.KEY).isEqualTo("the-key");
+
+        try {
+            Map<String, Object> headers = getCommonHeaders(component);
+            template.sendBodyAndHeaders("direct:put", content, headers);
+            mockEndpoint.assertIsSatisfied(5000);
+        } finally {
+            mockEndpoint.reset();
+        }
+    }
+
     @Path("/get")
     @GET
     @Produces(MediaType.TEXT_PLAIN)
@@ -198,16 +234,25 @@ public class InfinispanResources {
     }
 
     @Path("/putIdempotent")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public void putIdempotent(
-            @QueryParam("component") String component,
-            @QueryParam("messageId") String messageId,
-            String content) {
+    @GET
+    public void putIdempotent(@QueryParam("component") String component) throws InterruptedException {
+        String mockEndpointUri = component.equals("infinispan") ? "mock:camelResultIdempotent" : "mock:quarkusResultIdempotent";
+        MockEndpoint mockEndpoint = camelContext.getEndpoint(mockEndpointUri, MockEndpoint.class);
+        mockEndpoint.expectedMessageCount(1);
+
+        String messageId = UUID.randomUUID().toString();
         String uri = component.equals("infinispan") ? "direct:camelIdempotent" : "direct:quarkusIdempotent";
-        Map<String, Object> headers = getCommonHeaders(component);
-        headers.put("MessageId", messageId);
-        template.sendBodyAndHeaders(uri, content, headers);
+        try {
+            IntStream.of(1, 10).forEach(value -> {
+                Map<String, Object> headers = getCommonHeaders(component);
+                headers.put("MessageId", messageId);
+                template.sendBodyAndHeaders(uri, "Message " + value, headers);
+            });
+
+            mockEndpoint.assertIsSatisfied(5000);
+        } finally {
+            mockEndpoint.reset();
+        }
     }
 
     @Path("/putIfAbsent")
@@ -305,48 +350,6 @@ public class InfinispanResources {
         return statistics.getIntStatistic(ServerStatistics.CURRENT_NR_OF_ENTRIES);
     }
 
-    @Path("/mock/aggregation/results")
-    @GET
-    public void assertMockEndpointAggregationResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(2);
-        mockEndpoint.expectedBodiesReceived(1 + 3 + 4 + 5, 6 + 7 + 20 + 21);
-
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
-    @Path("/mock/event/results")
-    @GET
-    public void assertMockEndpointEventResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        mockEndpoint.message(0).header(InfinispanConstants.EVENT_TYPE).isEqualTo("CLIENT_CACHE_ENTRY_CREATED");
-        mockEndpoint.message(0).header(InfinispanConstants.CACHE_NAME).isNotNull();
-        mockEndpoint.message(0).header(InfinispanConstants.KEY).isEqualTo("test-key");
-
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
-    @Path("/mock/idempotent/results")
-    @GET
-    public void assertMockEndpointIdempotentResults(@QueryParam("uri") String uri) throws InterruptedException {
-        MockEndpoint mockEndpoint = camelContext.getEndpoint(uri, MockEndpoint.class);
-        mockEndpoint.expectedMessageCount(1);
-        try {
-            mockEndpoint.assertIsSatisfied(5000);
-        } finally {
-            mockEndpoint.reset();
-        }
-    }
-
     @POST
     @Path("consumer/{routeId}/{enabled}")
     public void manageRoute(
diff --git a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
index e9476d72b3..7a172a153e 100644
--- a/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
+++ b/integration-tests/infinispan/src/main/java/org/apache/camel/quarkus/component/infinispan/InfinispanRoutes.java
@@ -164,7 +164,7 @@ public class InfinispanRoutes extends RouteBuilder {
         from("infinispan:camel?eventTypes=CLIENT_CACHE_ENTRY_CREATED")
                 .id("infinispan-events")
                 .autoStartup(false)
-                .to("mock:resultCreated");
+                .to("mock:camelResultCreated");
 
         // Only start aggregation repository routes in JVM mode
         if (!"executable".equals(System.getProperty("org.graalvm.nativeimage.kind"))) {
@@ -173,38 +173,38 @@ public class InfinispanRoutes extends RouteBuilder {
                     .aggregationRepository(createAggregationRepository("infinispan"))
                     .aggregationStrategy(createAggregationStrategy())
                     .completionSize(COMPLETION_SIZE)
-                    .to("mock:aggregationResult");
+                    .to("mock:camelAggregationResult");
 
             from("direct:quarkusAggregation")
                     .aggregate(header(CORRELATOR_HEADER))
                     .aggregationRepository(createAggregationRepository("infinispan-quarkus"))
                     .aggregationStrategy(createAggregationStrategy())
                     .completionSize(COMPLETION_SIZE)
-                    .to("mock:aggregationResult");
+                    .to("mock:quarkusAggregationResult");
         }
 
         from("direct:camelIdempotent")
                 .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan"))
-                .to("mock:resultIdempotent");
+                .to("mock:camelResultIdempotent");
 
         from("direct:quarkusIdempotent")
                 .idempotentConsumer(header("MessageID"), createIdempotentRepository("infinispan-quarkus"))
-                .to("mock:resultIdempotent");
+                .to("mock:quarkusResultIdempotent");
 
         from("infinispan-quarkus:quarkus?eventTypes=CLIENT_CACHE_ENTRY_CREATED")
                 .id("infinispan-quarkus-events")
                 .autoStartup(false)
-                .to("mock:resultCreated");
+                .to("mock:quarkusResultCreated");
 
         from("infinispan:camel?customListener=#customListener")
                 .id("infinispan-custom-listener")
                 .autoStartup(false)
-                .to("mock:resultCustomListener");
+                .to("mock:camelResultCustomListener");
 
         from("infinispan-quarkus:quarkus?customListener=#customListener")
                 .id("infinispan-quarkus-custom-listener")
                 .autoStartup(false)
-                .to("mock:resultCustomListener");
+                .to("mock:quarkusResultCustomListener");
     }
 
     @Named("infinispan-quarkus")
diff --git a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
index c39731c5e7..50f95f9633 100644
--- a/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
+++ b/integration-tests/infinispan/src/test/java/org/apache/camel/quarkus/component/infinispan/InfinispanTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.quarkus.component.infinispan;
 
-import java.util.UUID;
-import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import io.quarkus.test.common.QuarkusTestResource;
@@ -68,19 +66,9 @@ public class InfinispanTest {
         // the default configured ProtoStreamMarshaller, thus we avoid doing it in this test suite
         Assumptions.assumeTrue(componentName.equals("infinispan"));
 
-        Stream.of(1, 3, 4, 5, 6, 7, 20, 21)
-                .forEach(value -> {
-                    RestAssured.with()
-                            .queryParam("component", componentName)
-                            .body(value)
-                            .post("/infinispan/aggregate")
-                            .then()
-                            .statusCode(204);
-                });
-
         RestAssured.with()
-                .queryParam("uri", "mock:aggregationResult")
-                .get("/infinispan/mock/aggregation/results")
+                .queryParam("component", componentName)
+                .get("/infinispan/aggregate")
                 .then()
                 .statusCode(204);
     }
@@ -203,16 +191,13 @@ public class InfinispanTest {
                 .statusCode(204);
 
         try {
+            String mockEndpointUri = componentName.equals("infinispan") ? "mock:camelResultCustomListener"
+                    : "mock:quarkusResultCustomListener";
             RestAssured.with()
                     .queryParam("component", componentName)
+                    .queryParam("mockEndpointUri", mockEndpointUri)
                     .body("Hello " + componentName)
-                    .post("/infinispan/put")
-                    .then()
-                    .statusCode(204);
-
-            RestAssured.with()
-                    .queryParam("uri", "mock:resultCustomListener")
-                    .get("/infinispan/mock/event/results")
+                    .get("/infinispan/event/verify")
                     .then()
                     .statusCode(204);
         } finally {
@@ -234,16 +219,13 @@ public class InfinispanTest {
                 .statusCode(204);
 
         try {
+            String mockEndpointUri = componentName.equals("infinispan") ? "mock:camelResultCreated"
+                    : "mock:quarkusResultCreated";
             RestAssured.with()
                     .queryParam("component", componentName)
+                    .queryParam("mockEndpointUri", mockEndpointUri)
                     .body("Hello " + componentName)
-                    .post("/infinispan/put")
-                    .then()
-                    .statusCode(204);
-
-            RestAssured.with()
-                    .queryParam("uri", "mock:resultCreated")
-                    .get("/infinispan/mock/event/results")
+                    .get("/infinispan/event/verify")
                     .then()
                     .statusCode(204);
         } finally {
@@ -283,21 +265,9 @@ public class InfinispanTest {
     @ParameterizedTest
     @MethodSource("componentNames")
     public void idempotent(String componentName) {
-        String messageId = UUID.randomUUID().toString();
-
-        IntStream.of(1, 10).forEach(value -> {
-            RestAssured.with()
-                    .queryParam("component", componentName)
-                    .queryParam("messageId", messageId)
-                    .body("Message " + value)
-                    .post("/infinispan/putIdempotent")
-                    .then()
-                    .statusCode(204);
-        });
-
         RestAssured.with()
-                .queryParam("uri", "mock:resultIdempotent")
-                .get("/infinispan/mock/idempotent/results")
+                .queryParam("component", componentName)
+                .get("/infinispan/putIdempotent")
                 .then()
                 .statusCode(204);
     }