package com.rabbitmq.client.test.functional; import com.rabbitmq.client.AMQP; import com.rabbitmq.client.Channel; import com.rabbitmq.client.DefaultConsumer; import com.rabbitmq.client.Envelope; import com.rabbitmq.client.test.BrokerTestCase; import org.junit.Test; import java.io.IOException; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import static org.junit.Assert.assertTrue; /** * */ public class BasicConsume extends BrokerTestCase { @Test public void basicConsumeOk() throws IOException, InterruptedException { String q = channel.queueDeclare().getQueue(); basicPublishPersistent("msg".getBytes("UTF-8"), q); basicPublishPersistent("msg".getBytes("UTF-8"), q); CountDownLatch latch = new CountDownLatch(2); channel.basicConsume(q, new CountDownLatchConsumer(channel, latch)); boolean nbOfExpectedMessagesHasBeenConsumed = latch.await(1, TimeUnit.SECONDS); assertTrue("Not all the messages have been received", nbOfExpectedMessagesHasBeenConsumed); } static class CountDownLatchConsumer extends DefaultConsumer { private final CountDownLatch latch; public CountDownLatchConsumer(Channel channel, CountDownLatch latch) { super(channel); this.latch = latch; } @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { latch.countDown(); } } }