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
The following commit(s) were added to refs/heads/main by this push:
new b979c10 (chores) camel-activemq: cleaned up tests to avoid
Thread.sleep calls
b979c10 is described below
commit b979c10cdcdd64be6f653550d1ddafc2deda9ad3
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Mon Oct 18 15:22:33 2021 +0200
(chores) camel-activemq: cleaned up tests to avoid Thread.sleep calls
---
.../camel/component/activemq/AMQ2611Test.java | 25 ++++++++++++++--
...ample.java => AdvisoryConsumerExampleTest.java} | 8 ++----
.../component/activemq/ObjectMessageTest.java | 33 ++++++++++++++++++----
.../component/activemq/PoisonJMSPayloadTest.java | 20 +++++++++----
4 files changed, 67 insertions(+), 19 deletions(-)
diff --git
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AMQ2611Test.java
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AMQ2611Test.java
index 9d30a40..c791826 100644
---
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AMQ2611Test.java
+++
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AMQ2611Test.java
@@ -16,12 +16,16 @@
*/
package org.apache.camel.component.activemq;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
import org.apache.camel.Body;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.activemq.support.ActiveMQSupport;
import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.support.LifecycleStrategySupport;
import org.apache.camel.test.infra.activemq.services.ActiveMQEmbeddedService;
import
org.apache.camel.test.infra.activemq.services.ActiveMQEmbeddedServiceBuilder;
import org.junit.jupiter.api.Test;
@@ -42,6 +46,8 @@ public class AMQ2611Test implements ActiveMQSupport {
.build();
private CamelContext camelContext;
+ private CountDownLatch startedLatch = new CountDownLatch(1);
+ private CountDownLatch stoppedLatch = new CountDownLatch(1);
public static class Consumer {
public void consume(@Body String message) {
@@ -60,6 +66,21 @@ public class AMQ2611Test implements ActiveMQSupport {
from(queueEndpointName).bean(Consumer.class, "consume");
}
});
+
+ camelContext.addLifecycleStrategy(new LifecycleStrategySupport() {
+ @Override
+ public void onContextStarted(CamelContext context) {
+ super.onContextStarted(context);
+ startedLatch.countDown();
+ }
+
+ @Override
+ public void onContextStopped(CamelContext context) {
+ super.onContextStopped(context);
+ stoppedLatch.countDown();
+ }
+ });
+
camelContext.start();
final ProducerTemplate producerTemplate =
camelContext.createProducerTemplate();
producerTemplate.sendBody(queueEndpointName, "message");
@@ -77,9 +98,9 @@ public class AMQ2611Test implements ActiveMQSupport {
int i = 0;
while (i++ < 5) {
createCamelContext();
- Thread.sleep(1000);
+ startedLatch.await(1, TimeUnit.SECONDS);
destroyCamelContext();
- Thread.sleep(1000);
+ stoppedLatch.await(1, TimeUnit.SECONDS);
assertEquals(0, service.getConnectionCount());
}
} catch (Exception e) {
diff --git
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExample.java
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExampleTest.java
similarity index 96%
rename from
components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExample.java
rename to
components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExampleTest.java
index 99aa6b5..311cc42 100644
---
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExample.java
+++
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/AdvisoryConsumerExampleTest.java
@@ -35,16 +35,14 @@ import static
org.junit.jupiter.api.Assertions.assertDoesNotThrow;
/**
*
*/
-public class AdvisoryConsumerExample extends ActiveMQTestSupport {
- private static final Logger LOG =
LoggerFactory.getLogger(AdvisoryConsumerExample.class);
+public class AdvisoryConsumerExampleTest extends ActiveMQTestSupport {
+ private static final Logger LOG =
LoggerFactory.getLogger(AdvisoryConsumerExampleTest.class);
- @Test()
+ @Test
public void testWorks() throws Exception {
// lets create a new queue
assertDoesNotThrow(
() -> template.sendBody("activemq:NewQueue." +
System.currentTimeMillis(), "<hello>world!</hello>"));
-
- Thread.sleep(10000);
}
@Override
diff --git
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ObjectMessageTest.java
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ObjectMessageTest.java
index 3b9b2a0..6e9192a 100644
---
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ObjectMessageTest.java
+++
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ObjectMessageTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.activemq;
import javax.jms.Connection;
+import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
@@ -28,17 +29,24 @@ import org.apache.camel.component.jms.JmsBinding;
import org.apache.camel.component.jms.JmsMessage;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.ExchangeHelper;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestMethodOrder;
import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class ObjectMessageTest extends ActiveMQSpringTestSupport {
- @Test
- public void testUntrusted() throws Exception {
- ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory(vmUri());
+ private ActiveMQConnectionFactory factory;
+
+ @BeforeEach
+ public void setupBroker() throws JMSException {
+ factory = new ActiveMQConnectionFactory(vmUri());
Connection conn = factory.createConnection();
conn.start();
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -48,27 +56,40 @@ public class ObjectMessageTest extends
ActiveMQSpringTestSupport {
payload.payload = "test";
msg.setObject(payload);
producer.send(msg);
+ }
- Thread.sleep(1000);
-
+ @Order(1)
+ @Test
+ public void testUntrusted() throws Exception {
MockEndpoint resultActiveMQ =
resolveMandatoryEndpoint("mock:result-activemq", MockEndpoint.class);
resultActiveMQ.expectedMessageCount(1);
resultActiveMQ.assertIsNotSatisfied();
+ }
+ @Order(2)
+ @Test
+ public void testTrusted() throws InterruptedException {
MockEndpoint resultTrusted =
resolveMandatoryEndpoint("mock:result-trusted", MockEndpoint.class);
resultTrusted.expectedMessageCount(1);
resultTrusted.assertIsSatisfied();
assertCorrectObjectReceived(resultTrusted);
+ }
+ @Order(3)
+ @Test
+ public void testResultCamel() throws InterruptedException {
MockEndpoint resultCamel =
resolveMandatoryEndpoint("mock:result-camel", MockEndpoint.class);
resultCamel.expectedMessageCount(1);
resultCamel.assertIsSatisfied();
assertCorrectObjectReceived(resultCamel);
+ }
+ @Order(4)
+ @Test
+ public void testResultEmpty() throws InterruptedException {
MockEndpoint resultEmpty =
resolveMandatoryEndpoint("mock:result-empty", MockEndpoint.class);
resultEmpty.expectedMessageCount(1);
resultEmpty.assertIsNotSatisfied();
-
}
protected void assertCorrectObjectReceived(MockEndpoint result) {
diff --git
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/PoisonJMSPayloadTest.java
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/PoisonJMSPayloadTest.java
index 44537c0..359ac8f 100644
---
a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/PoisonJMSPayloadTest.java
+++
b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/PoisonJMSPayloadTest.java
@@ -17,39 +17,47 @@
package org.apache.camel.component.activemq;
import javax.jms.Connection;
+import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.component.activemq.support.ActiveMQSpringTestSupport;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
public class PoisonJMSPayloadTest extends ActiveMQSpringTestSupport {
- @Test
- public void testCreateBodyThrowException() throws Exception {
+ private ActiveMQConnectionFactory factory;
+ private Session sess;
+
+ @BeforeEach
+ public void setupTest() throws JMSException {
getMockEndpoint("mock:result-activemq").expectedMessageCount(0);
getMockEndpoint("mock:dead").expectedMessageCount(1);
getMockEndpoint("mock:dead").message(0).body(String.class)
.startsWith(
"Poison JMS message payload: Failed to extract body
due to: javax.jms.JMSException: Failed to build body from content. Serializable
class not available to broker.");
- ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory(vmUri());
+ factory = new ActiveMQConnectionFactory(vmUri());
Connection conn = factory.createConnection();
conn.start();
- Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
MessageProducer producer =
sess.createProducer(sess.createTopic("foo"));
ObjectMessage msg = sess.createObjectMessage();
+
ObjectPayload payload = new ObjectPayload();
payload.payload = "test";
msg.setObject(payload);
producer.send(msg);
+ }
- Thread.sleep(1000);
-
+ @Test
+ public void testCreateBodyThrowException() throws Exception {
// bean should not be invoked
boolean invoked = context.getRegistry().lookupByNameAndType("myBean",
MyBean.class).isInvoked();
assertFalse(invoked, "Bean should not be invoked");