This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit d4065543906245eef1c9a9aad2f0ac2dc588f4ea Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Mon Mar 18 09:37:42 2024 +0100 CAMEL-20477: try to fix flakiness on AsyncJmsProducerTest - Setup mocks in advance - Use a transient extension to allow repeating the test and ensure a clean test context - Repeat the test more often --- .../component/jms/async/AsyncJmsProducerTest.java | 31 +++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java index 7ff9c58d824..50ad07105b4 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/async/AsyncJmsProducerTest.java @@ -23,10 +23,10 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.jms.AbstractJMSTest; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.infra.core.CamelContextExtension; -import org.apache.camel.test.infra.core.DefaultCamelContextExtension; +import org.apache.camel.test.infra.core.TransientCamelContextExtension; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Order; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -36,23 +36,36 @@ public class AsyncJmsProducerTest extends AbstractJMSTest { @Order(2) @RegisterExtension - public static CamelContextExtension camelContextExtension = new DefaultCamelContextExtension(); + public static CamelContextExtension camelContextExtension = new TransientCamelContextExtension(); private static String beforeThreadName; private static String afterThreadName; protected CamelContext context; protected ProducerTemplate template; protected ConsumerTemplate consumer; - @Test - public void testAsyncEndpoint() throws Exception { - getMockEndpoint("mock:before").expectedBodiesReceived("Hello Camel"); - getMockEndpoint("mock:after").expectedBodiesReceived("Bye Camel"); - getMockEndpoint("mock:result").expectedBodiesReceived("Bye Camel"); + private MockEndpoint mockBefore; + private MockEndpoint mockAfter; + private MockEndpoint mockResult; + + @BeforeEach + void setupMocks() { + mockBefore = getMockEndpoint("mock:before"); + mockAfter = getMockEndpoint("mock:after"); + mockResult = getMockEndpoint("mock:result"); + mockBefore.expectedBodiesReceived("Hello Camel"); + mockAfter.expectedBodiesReceived("Bye Camel"); + mockResult.expectedBodiesReceived("Bye Camel"); + } + + @RepeatedTest(5) + public void testAsyncEndpoint() throws Exception { String reply = template.requestBody("direct:start", "Hello Camel", String.class); assertEquals("Bye Camel", reply); - MockEndpoint.assertIsSatisfied(context); + mockBefore.assertIsSatisfied(); + mockAfter.assertIsSatisfied(); + mockResult.assertIsSatisfied(); assertFalse(beforeThreadName.equalsIgnoreCase(afterThreadName), "Should use different threads"); }