@Test public void testConvert1ArgDirect() throws Exception { this.latch.set(new CountDownLatch(1)); ListenableFuture<String> future1 = this.asyncDirectTemplate.convertSendAndReceive("foo"); ListenableFuture<String> future2 = this.asyncDirectTemplate.convertSendAndReceive("bar"); this.latch.get().countDown(); checkConverterResult(future1, "FOO"); checkConverterResult(future2, "BAR"); this.latch.set(null); waitForZeroInUseConsumers(); assertThat(TestUtils .getPropertyValue(this.asyncDirectTemplate, "directReplyToContainer.consumerCount", Integer.class), equalTo(2)); final String missingQueue = UUID.randomUUID().toString(); this.asyncDirectTemplate.convertSendAndReceive("", missingQueue, "foo"); // send to nowhere this.asyncDirectTemplate.stop(); // should clear the inUse channel map waitForZeroInUseConsumers(); this.asyncDirectTemplate.start(); this.asyncDirectTemplate.setReceiveTimeout(1); this.asyncDirectTemplate.convertSendAndReceive("", missingQueue, "foo"); // send to nowhere waitForZeroInUseConsumers(); this.asyncDirectTemplate.setReceiveTimeout(10000); this.asyncDirectTemplate.convertSendAndReceive("", missingQueue, "foo").cancel(true); waitForZeroInUseConsumers(); }
@Test public void testMessage1Arg() throws Exception { ListenableFuture<Message> future = this.asyncTemplate.sendAndReceive(getFooMessage()); checkMessageResult(future, "FOO"); }
@Test public void testMessage1ArgDirect() throws Exception { this.latch.set(new CountDownLatch(1)); ListenableFuture<Message> future1 = this.asyncDirectTemplate.sendAndReceive(getFooMessage()); ListenableFuture<Message> future2 = this.asyncDirectTemplate.sendAndReceive(getFooMessage()); this.latch.get().countDown(); Message reply1 = checkMessageResult(future1, "FOO"); assertEquals(Address.AMQ_RABBITMQ_REPLY_TO, reply1.getMessageProperties().getConsumerQueue()); Message reply2 = checkMessageResult(future2, "FOO"); assertEquals(Address.AMQ_RABBITMQ_REPLY_TO, reply2.getMessageProperties().getConsumerQueue()); this.latch.set(null); waitForZeroInUseConsumers(); assertThat(TestUtils .getPropertyValue(this.asyncDirectTemplate, "directReplyToContainer.consumerCount", Integer.class), equalTo(2)); this.asyncDirectTemplate.stop(); this.asyncDirectTemplate.start(); assertThat(TestUtils .getPropertyValue(this.asyncDirectTemplate, "directReplyToContainer.consumerCount", Integer.class), equalTo(0)); }
@Test public void testConvert1Arg() throws Exception { final AtomicBoolean mppCalled = new AtomicBoolean(); ListenableFuture<String> future = this.asyncTemplate.convertSendAndReceive("foo", m -> { mppCalled.set(true); return m; }); checkConverterResult(future, "FOO"); assertTrue(mppCalled.get()); }
@Test @DirtiesContext public void testMessageWithConfirmDirect() throws Exception { this.asyncDirectTemplate.setEnableConfirms(true); RabbitMessageFuture future = this.asyncDirectTemplate .sendAndReceive(new SimpleMessageConverter().toMessage("sleep", new MessageProperties())); ListenableFuture<Boolean> confirm = future.getConfirm(); assertNotNull(confirm); assertTrue(confirm.get(10, TimeUnit.SECONDS)); checkMessageResult(future, "SLEEP"); }
@Test public void testConvert2Args() throws Exception { ListenableFuture<String> future = this.asyncTemplate.convertSendAndReceive(this.requests.getName(), "foo"); checkConverterResult(future, "FOO"); }
@Test @DirtiesContext public void testMessageWithConfirm() throws Exception { this.asyncTemplate.setEnableConfirms(true); RabbitMessageFuture future = this.asyncTemplate .sendAndReceive(new SimpleMessageConverter().toMessage("sleep", new MessageProperties())); ListenableFuture<Boolean> confirm = future.getConfirm(); assertNotNull(confirm); assertTrue(confirm.get(10, TimeUnit.SECONDS)); checkMessageResult(future, "SLEEP"); }
@Test public void testMessage3Args() throws Exception { ListenableFuture<Message> future = this.asyncTemplate.sendAndReceive("", this.requests.getName(), getFooMessage()); checkMessageResult(future, "FOO"); }
@Test public void testConvert3Args() throws Exception { ListenableFuture<String> future = this.asyncTemplate.convertSendAndReceive("", this.requests.getName(), "foo"); checkConverterResult(future, "FOO"); }
@Test public void testMessage2Args() throws Exception { ListenableFuture<Message> future = this.asyncTemplate.sendAndReceive(this.requests.getName(), getFooMessage()); checkMessageResult(future, "FOO"); }
@Test public void testConvert4Args() throws Exception { ListenableFuture<String> future = this.asyncTemplate.convertSendAndReceive("", this.requests.getName(), "foo", message -> { String body = new String(message.getBody()); return new Message((body + "bar").getBytes(), message.getMessageProperties()); }); checkConverterResult(future, "FOOBAR"); }
@Test public void testMessageCustomCorrelation() throws Exception { Message message = getFooMessage(); message.getMessageProperties().setCorrelationId("foo"); ListenableFuture<Message> future = this.asyncTemplate.sendAndReceive(message); Message result = checkMessageResult(future, "FOO"); assertEquals("foo", result.getMessageProperties().getCorrelationId()); }
@Test @DirtiesContext public void testConvertWithConfirmDirect() throws Exception { this.asyncDirectTemplate.setEnableConfirms(true); RabbitConverterFuture<String> future = this.asyncDirectTemplate.convertSendAndReceive("sleep"); ListenableFuture<Boolean> confirm = future.getConfirm(); assertNotNull(confirm); assertTrue(confirm.get(10, TimeUnit.SECONDS)); checkConverterResult(future, "SLEEP"); }
@Test @DirtiesContext public void testConvertWithConfirm() throws Exception { this.asyncTemplate.setEnableConfirms(true); RabbitConverterFuture<String> future = this.asyncTemplate.convertSendAndReceive("sleep"); ListenableFuture<Boolean> confirm = future.getConfirm(); assertNotNull(confirm); assertTrue(confirm.get(10, TimeUnit.SECONDS)); checkConverterResult(future, "SLEEP"); }