From e2ee43f6456663bed502362f43608ac11d72e985 Mon Sep 17 00:00:00 2001 From: James Netherton Date: Tue, 15 Oct 2024 13:53:32 +0100 Subject: [PATCH] Increase MockEndpoint assertion wait timeout for JMS resequence test Fixes #2957 --- .../messaging/it/MessagingCommonResource.java | 24 ++++++++++++++----- .../messaging/it/AbstractMessagingTest.java | 17 +++++-------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/integration-tests/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/MessagingCommonResource.java b/integration-tests/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/MessagingCommonResource.java index 3b559b6ed0b8..f9fe4499fbef 100644 --- a/integration-tests/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/MessagingCommonResource.java +++ b/integration-tests/messaging/common/src/main/java/org/apache/camel/quarkus/component/messaging/it/MessagingCommonResource.java @@ -40,6 +40,7 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import org.apache.camel.CamelContext; @@ -247,17 +248,28 @@ public void topicPubSub(@PathParam("topicName") String topicName, String message topicResultB.assertIsSatisfied(5000); } - @Path("/mock/{name}/{count}/{timeout}") + @Path("/resequence") + @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.APPLICATION_JSON) - @GET - public List mock(@PathParam("name") String name, @PathParam("count") int count, @PathParam("timeout") int timeout) { - MockEndpoint mock = context.getEndpoint("mock:" + name, MockEndpoint.class); - mock.setExpectedMessageCount(count); + @POST + public List resequence(@QueryParam("queueName") String queueName, String payload) { + String[] messages = payload.split(","); + MockEndpoint mock = context.getEndpoint("mock:resequence", MockEndpoint.class); + mock.setExpectedMessageCount(messages.length); + mock.setResultWaitTime(30000); + try { - mock.assertIsSatisfied(timeout); + for (String message : messages) { + produceJmsQueueMessage(queueName, message); + } + + mock.assertIsSatisfied(10000); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); + } catch (Exception e) { + throw new RuntimeException(e); } + return mock.getExchanges().stream().map(e -> e.getMessage().getBody(String.class)).collect(Collectors.toList()); } diff --git a/integration-tests/messaging/common/src/test/java/org/apache/camel/quarkus/component/messaging/it/AbstractMessagingTest.java b/integration-tests/messaging/common/src/test/java/org/apache/camel/quarkus/component/messaging/it/AbstractMessagingTest.java index 04165ae9cd04..5f2a25655c68 100644 --- a/integration-tests/messaging/common/src/test/java/org/apache/camel/quarkus/component/messaging/it/AbstractMessagingTest.java +++ b/integration-tests/messaging/common/src/test/java/org/apache/camel/quarkus/component/messaging/it/AbstractMessagingTest.java @@ -32,7 +32,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -152,23 +151,19 @@ public void testJmsTransaction() { .body(is("JMS Transaction Success")); } - @DisabledIfEnvironmentVariable(named = "CI", matches = "true", disabledReason = "https://github.com/apache/camel-quarkus/issues/2957") @Test public void testResequence() { final List messages = Arrays.asList("a", "b", "c", "c", "d"); - for (String msg : messages) { - RestAssured.given() - .body(msg) - .post("/messaging/{queueName}", queue) - .then() - .statusCode(201); - } - Collections.reverse(messages); final List actual = RestAssured.given() - .get("/messaging/mock/resequence/5/10000") + .contentType(ContentType.TEXT) + .queryParam("queueName", queue) + .body(String.join(",", messages)) + .post("/messaging/resequence") .then() .statusCode(200) .extract().body().jsonPath().getList(".", String.class); + + Collections.reverse(messages); Assertions.assertEquals(messages, actual); }