@Override protected Object preProcessResponse(Object result) { MethodParameter returnType = getHandlerMethod().getReturnType(); if (result instanceof Message) { return MessageBuilder.fromMessage((Message<?>) result) .setHeader(AbstractMessageSendingTemplate.CONVERSION_HINT_HEADER, returnType).build(); } return MessageBuilder.withPayload(result).setHeader( AbstractMessageSendingTemplate.CONVERSION_HINT_HEADER, returnType).build(); }
@Test(expected = IllegalArgumentException.class) public void testIdHeaderValueReadOnly() { UUID id = UUID.randomUUID(); MessageBuilder.withPayload("test").setHeader(MessageHeaders.ID, id); }
private Message<byte[]> message(SimpMessageType messageType) { MessageBuilder<byte[]> builder = MessageBuilder.withPayload(new byte[0]); if (messageType != null) { builder.setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, messageType); } return builder.build(); }
@Test public void testHeaderValues() { Message<String> message = MessageBuilder.withPayload("test") .setHeader("foo", "bar") .setHeader("count", 123) .build(); assertEquals("bar", message.getHeaders().get("foo", String.class)); assertEquals(new Integer(123), message.getHeaders().get("count", Integer.class)); }
@JsonView(Summary.class) public Message<SampleResponse> replyJacksonMessageAndJsonView(Message<String> input) { return MessageBuilder.withPayload(createSampleResponse(input.getPayload())) .setHeader("foo", "bar").build(); }
@Test public void copyHeadersIfAbsent() { Message<String> message1 = MessageBuilder.withPayload("test1") .setHeader("foo", "bar").build(); Message<String> message2 = MessageBuilder.withPayload("test2") .setHeader("foo", 123) .copyHeadersIfAbsent(message1.getHeaders()) .build(); assertEquals("test2", message2.getPayload()); assertEquals(123, message2.getHeaders().get("foo")); }
@Test public void createIdRegenerated() { Message<String> message1 = MessageBuilder.withPayload("test") .setHeader("foo", "bar").build(); Message<String> message2 = MessageBuilder.fromMessage(message1).setHeader("another", 1).build(); assertEquals("bar", message2.getHeaders().get("foo")); assertNotSame(message1.getHeaders().getId(), message2.getHeaders().getId()); }
@Test public void fromMessageByteArray() { Message<byte[]> message = MessageBuilder.withPayload( "ABC".getBytes()).setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN).build(); assertEquals("ABC", this.converter.fromMessage(message, String.class)); }
@Test public void jmsCorrelationIdIgnoredIfIncorrectType() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, new Date()).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSCorrelationID()); }
@Test public void fromMessageCharset() { String payload = "H\u00e9llo W\u00f6rld"; Message<byte[]> message = MessageBuilder.withPayload(payload.getBytes(StandardCharsets.ISO_8859_1)) .setHeader(MessageHeaders.CONTENT_TYPE, new MimeType("text", "plain", StandardCharsets.ISO_8859_1)).build(); assertEquals(payload, this.converter.fromMessage(message, String.class)); }
@Test public void supportsMimeTypeNoneConfigured() { Message<String> message = MessageBuilder.withPayload( "ABC").setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON).build(); this.converter = new TestMessageConverter(Collections.<MimeType>emptyList()); assertEquals("success-from", this.converter.fromMessage(message, String.class)); }
@Test public void createFromMessage() { Message<String> message1 = MessageBuilder.withPayload("test") .setHeader("foo", "bar").build(); Message<String> message2 = MessageBuilder.fromMessage(message1).build(); assertEquals("test", message2.getPayload()); assertEquals("bar", message2.getHeaders().get("foo")); }
@Test public void supportsMimeTypeNotSupported() { Message<String> message = MessageBuilder.withPayload( "ABC").setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON).build(); assertNull(this.converter.fromMessage(message, String.class)); }
@Test public void fromStringMessage() { Message<String> message = MessageBuilder.withPayload( "ABC").setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN).build(); assertEquals("ABC", this.converter.fromMessage(message, String.class)); }
@Test public void supportsMimeType() { Message<String> message = MessageBuilder.withPayload( "ABC").setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN).build(); assertEquals("success-from", this.converter.fromMessage(message, String.class)); }
@Test public void resolveArgument() throws Exception { Message<byte[]> message = MessageBuilder.withPayload(new byte[0]).setHeader("param1", "foo").build(); Object result = this.resolver.resolveArgument(this.paramRequired, message); assertEquals("foo", result); }
@Test public void jmsCorrelationIdNumberConvertsToString() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, 123).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertEquals("123", jmsMessage.getJMSCorrelationID()); }
@Test public void contentTypePropertyMappedFromHeader() throws JMSException { Message<String> message = initBuilder() .setHeader(MessageHeaders.CONTENT_TYPE, "foo") .build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); Object value = jmsMessage.getObjectProperty(JmsHeaderMapper.CONTENT_TYPE_PROPERTY); assertNotNull(value); assertEquals("foo", value); }
@Test public void jmsReplyToMappedFromHeader() throws JMSException { Destination replyTo = new Destination() {}; Message<String> message = initBuilder() .setHeader(JmsHeaders.REPLY_TO, replyTo).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNotNull(jmsMessage.getJMSReplyTo()); assertSame(replyTo, jmsMessage.getJMSReplyTo()); }
@Test public void jmsTypeMappedFromHeader() throws JMSException { String jmsType = "testing"; Message<String> message = initBuilder() .setHeader(JmsHeaders.TYPE, jmsType).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNotNull(jmsMessage.getJMSType()); assertEquals(jmsType, jmsMessage.getJMSType()); }