Test sticky() EIP DSL method #2628
diff --git a/integration-test-groups/foundation/eip/src/main/java/org/apache/camel/quarkus/eip/it/EipRoutes.java b/integration-test-groups/foundation/eip/src/main/java/org/apache/camel/quarkus/eip/it/EipRoutes.java
index 360716f..15e24e6 100644
--- a/integration-test-groups/foundation/eip/src/main/java/org/apache/camel/quarkus/eip/it/EipRoutes.java
+++ b/integration-test-groups/foundation/eip/src/main/java/org/apache/camel/quarkus/eip/it/EipRoutes.java
@@ -48,6 +48,10 @@
.loadBalance().roundRobin()
.to("mock:roundRobinLoadBalancer1", "mock:roundRobinLoadBalancer2");
+ from("direct:stickyLoadBalancer")
+ .loadBalance().sticky(header("stickyKey"))
+ .to("mock:stickyLoadBalancer1", "mock:stickyLoadBalancer2");
+
from("direct:enrich")
.enrich("direct:prepend-hello");
diff --git a/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipTest.java b/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipTest.java
index df94356..bee463e 100644
--- a/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipTest.java
+++ b/integration-test-groups/foundation/eip/src/test/java/org/apache/camel/quarkus/eip/it/EipTest.java
@@ -98,6 +98,32 @@
}
@Test
+ public void stickyLoadBalancer() {
+ final List<String> messages = Arrays.asList("a", "b", "c", "d");
+ int i = 0;
+ for (String msg : messages) {
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .queryParam("stickyKey", String.valueOf(1 + (i++ % 2)))
+ .body(msg)
+ .post("/eip/route/stickyLoadBalancer")
+ .then()
+ .statusCode(200);
+ }
+
+ RestAssured.get("/eip/mock/stickyLoadBalancer1/2/10000/body")
+ .then()
+ .statusCode(200)
+ .body(Matchers.is("a,c"));
+
+ RestAssured.get("/eip/mock/stickyLoadBalancer2/2/10000/body")
+ .then()
+ .statusCode(200)
+ .body(Matchers.is("b,d"));
+
+ }
+
+ @Test
public void enrich() {
RestAssured.given()
.contentType(ContentType.TEXT)