This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 1b7d22d Fix camel-rabbitmq integration test 1b7d22d is described below commit 1b7d22dab6b03fa40767c71927ea3afa079bd372 Author: Denis Istomin <istomin....@gmail.com> AuthorDate: Sun Jan 26 18:35:55 2020 +0500 Fix camel-rabbitmq integration test --- components/camel-rabbitmq/pom.xml | 5 +++++ .../src/main/docs/rabbitmq-component.adoc | 4 +++- .../component/rabbitmq/RabbitMQConsumerIntTest.java | 18 +++++++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/components/camel-rabbitmq/pom.xml b/components/camel-rabbitmq/pom.xml index c70f19c..8a21b63 100644 --- a/components/camel-rabbitmq/pom.xml +++ b/components/camel-rabbitmq/pom.xml @@ -105,6 +105,11 @@ <artifactId>log4j-slf4j-impl</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc b/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc index b3af8f9..0a39cd0 100644 --- a/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc +++ b/components/camel-rabbitmq/src/main/docs/rabbitmq-component.adoc @@ -446,7 +446,9 @@ For example declaring a method in Spring ---- @Bean(name = "bindArgs") public Map<String, Object> bindArgsBuilder() { - return Collections.singletonMap("foo", "bar"); + return new HashMap<String, Object>() {{ + put("binding.foo", "bar"); + }}; } ---- diff --git a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQConsumerIntTest.java b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQConsumerIntTest.java index 34035ca..d042814 100644 --- a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQConsumerIntTest.java +++ b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQConsumerIntTest.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import com.rabbitmq.client.AMQP; @@ -31,6 +32,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.EndpointInject; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; +import org.awaitility.Awaitility; import org.junit.Test; public class RabbitMQConsumerIntTest extends AbstractRabbitMQIntTest { @@ -53,7 +55,11 @@ public class RabbitMQConsumerIntTest extends AbstractRabbitMQIntTest { private Endpoint headersExchangeWithQueueDefiniedInline; @BindToRegistry("args") - private Map<String, Object> bindingArgs = new HashMap<>(); + private Map<String, Object> bindingArgs = new HashMap<String, Object>() { + { + put("binding.foo", "bar"); + } + }; @Override protected RouteBuilder createRouteBuilder() throws Exception { @@ -121,8 +127,8 @@ public class RabbitMQConsumerIntTest extends AbstractRabbitMQIntTest { */ @Test public void sentMessageIsReceivedWithHeadersRouting() throws InterruptedException, IOException, TimeoutException { - //should only be one message that makes it through because only - //one has the correct header set + // Should only be one message that makes it through, + // because only one has the correct header set to.expectedMessageCount(1); Channel channel = connection().createChannel(); @@ -130,6 +136,12 @@ public class RabbitMQConsumerIntTest extends AbstractRabbitMQIntTest { channel.basicPublish(HEADERS_EXCHANGE, "", null, MSG.getBytes()); channel.basicPublish(HEADERS_EXCHANGE, "", propertiesWithHeader("foo", "bra"), MSG.getBytes()); + // Only one message should be received, waiting for some other messages + Awaitility.await() + .during(1000, TimeUnit.MILLISECONDS) + .atMost(2000, TimeUnit.MILLISECONDS) + .until(() -> to.getReceivedCounter() >= 1); + to.assertIsSatisfied(); }