/** * Create a text message with the relevant content type. */ public static Message createTextMessage(String body) { return createTextMessage(body, new MessageProperties()); }
@Test public void endpointWithMessage() { MessageProperties properties = new MessageProperties(); properties.setHeader("prefix", "prefix-"); Message request = MessageTestUtils.createTextMessage("foo", properties); Message reply = rabbitTemplate.sendAndReceive("test.message", request); assertEquals("prefix-FOO", MessageTestUtils.extractText(reply)); }
/** * Create a text message with the specified {@link MessageProperties}. The * content type is set no matter */ public static Message createTextMessage(String body, MessageProperties properties) { properties.setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN); return new org.springframework.amqp.core.Message(toBytes(body), properties); }
@Test public void convertAndSendPayloadExchange() { messagingTemplate.convertAndSend("myExchange", "myQueue", "my Payload"); verify(rabbitTemplate).send(eq("myExchange"), eq("myQueue"), amqpMessage.capture()); assertEquals("my Payload", MessageTestUtils.extractText(amqpMessage.getValue())); }
@Test public void convertAndSendPayload() { messagingTemplate.convertAndSend("myQueue", "my Payload"); verify(rabbitTemplate).send(eq("myQueue"), amqpMessage.capture()); assertEquals("my Payload", MessageTestUtils.extractText(amqpMessage.getValue())); }
private org.springframework.amqp.core.Message createAmqpTextMessage(String payload) { MessageProperties properties = new MessageProperties(); properties.setHeader("foo", "bar"); return MessageTestUtils.createTextMessage(payload, properties); }
@Test public void endpointWithHeader() { MessageProperties properties = new MessageProperties(); properties.setHeader("prefix", "prefix-"); Message request = MessageTestUtils.createTextMessage("foo", properties); Message reply = rabbitTemplate.sendAndReceive("test.header", request); assertEquals("prefix-FOO", MessageTestUtils.extractText(reply)); assertEquals(reply.getMessageProperties().getHeaders().get("replyMPPApplied"), Boolean.TRUE); }
@Test public void convertAndSendDefaultDestination() { messagingTemplate.setDefaultDestination("default"); messagingTemplate.convertAndSend("my Payload"); verify(rabbitTemplate).send(eq("default"), amqpMessage.capture()); assertEquals("my Payload", MessageTestUtils.extractText(amqpMessage.getValue())); }
@Test public void resolveGenericMessage() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance(Message.class); Channel channel = mock(Channel.class); listener.onMessage(MessageTestUtils.createTextMessage("test"), channel); assertDefaultListenerMethodInvocation(); }
@Test public void endpointWithComplexReply() { MessageProperties properties = new MessageProperties(); properties.setHeader("foo", "fooValue"); Message request = MessageTestUtils.createTextMessage("content", properties); Message reply = rabbitTemplate.sendAndReceive("test.reply", request); assertEquals("Wrong reply", "content", MessageTestUtils.extractText(reply)); assertEquals("Wrong foo header", "fooValue", reply.getMessageProperties().getHeaders().get("foo")); assertThat((String) reply.getMessageProperties().getHeaders().get("bar"), startsWith(tagPrefix)); }
private void assertTextMessage(org.springframework.amqp.core.Message amqpMessage) { assertEquals("Wrong body message", "Hello", MessageTestUtils.extractText(amqpMessage)); assertEquals("Invalid foo property", "bar", amqpMessage.getMessageProperties().getHeaders().get("foo")); }
@Test public void resolveConvertedPayload() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance(Integer.class); Channel channel = mock(Channel.class); listener.onMessage(MessageTestUtils.createTextMessage("33"), channel); assertDefaultListenerMethodInvocation(); }
@Test public void resolveMessageAndSession() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance( org.springframework.amqp.core.Message.class, Channel.class); Channel channel = mock(Channel.class); listener.onMessage(MessageTestUtils.createTextMessage("test"), channel); assertDefaultListenerMethodInvocation(); }
@Test public void invalidMessagePayloadType() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance(Message.class); Channel channel = mock(Channel.class); thrown.expect(ListenerExecutionFailedException.class); thrown.expectCause(Matchers.<Throwable>either(Matchers.instanceOf(MethodArgumentTypeMismatchException.class)) .or(Matchers.instanceOf(org.springframework.messaging.converter.MessageConversionException.class))); listener.onMessage(MessageTestUtils.createTextMessage("test"), channel); // Message<String> as Message<Integer> }
@Test public void exceptionInInvocation() { org.springframework.amqp.core.Message message = MessageTestUtils.createTextMessage("foo"); Channel channel = mock(Channel.class); MessagingMessageListenerAdapter listener = getSimpleInstance("wrongParam", Integer.class); try { listener.onMessage(message, channel); fail("Should have thrown an exception"); } catch (ListenerExecutionFailedException ex) { assertEquals(org.springframework.messaging.converter.MessageConversionException.class, ex.getCause().getClass()); } catch (Exception ex) { fail("Should not have thrown an " + ex.getClass().getSimpleName()); } }
@Test public void exceptionInListener() { org.springframework.amqp.core.Message message = MessageTestUtils.createTextMessage("foo"); Channel channel = mock(Channel.class); MessagingMessageListenerAdapter listener = getSimpleInstance("fail", String.class); try { listener.onMessage(message, channel); fail("Should have thrown an exception"); } catch (ListenerExecutionFailedException ex) { assertEquals(IllegalArgumentException.class, ex.getCause().getClass()); assertEquals("Expected test exception", ex.getCause().getMessage()); } catch (Exception ex) { fail("Should not have thrown an " + ex.getClass().getSimpleName()); } }
@Test public void emptySendTo() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class); processAndReply(listener, MessageTestUtils.createTextMessage("content"), "", "", false, null); assertDefaultListenerMethodInvocation(); }
@Test public void exceptionInListenerBadReturnExceptionSetting() { org.springframework.amqp.core.Message message = MessageTestUtils.createTextMessage("foo"); Channel channel = mock(Channel.class); MessagingMessageListenerAdapter listener = getSimpleInstance("fail", true, String.class); try { listener.onMessage(message, channel); fail("Should have thrown an exception"); } catch (ListenerExecutionFailedException ex) { assertEquals(IllegalArgumentException.class, ex.getCause().getClass()); assertEquals("Expected test exception", ex.getCause().getMessage()); } catch (Exception ex) { fail("Should not have thrown an " + ex.getClass().getSimpleName()); } }
@Test public void genericMessageTest3() throws Exception { org.springframework.amqp.core.Message message = MessageTestUtils.createTextMessage("{ \"foo\" : \"bar\" }"); Channel channel = mock(Channel.class); MessagingMessageListenerAdapter listener = getSimpleInstance("withNonGenericMessage", Message.class); listener.setMessageConverter(new Jackson2JsonMessageConverter()); message.getMessageProperties().setContentType("application/json"); listener.onMessage(message, channel); assertEquals(LinkedHashMap.class, this.sample.payload.getClass()); }
@Test public void resolveCustomHeaderNameAndPayload() throws Exception { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class, int.class); Channel channel = mock(Channel.class); MessageProperties properties = new MessageProperties(); properties.setHeader("myCounter", 24); org.springframework.amqp.core.Message message = MessageTestUtils.createTextMessage("my payload", properties); listener.onMessage(message, channel); assertDefaultListenerMethodInvocation(); }