private javax.jms.Message createJmsTextMessage(String payload) { try { StubTextMessage jmsMessage = new StubTextMessage(payload); jmsMessage.setStringProperty("foo", "bar"); return jmsMessage; } catch (JMSException e) { throw new IllegalStateException("Should not happen", e); } }
@Test public void jmsTimestampMappedToHeader() throws JMSException { long timestamp = 123L; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSTimestamp(timestamp); assertInboundHeader(jmsMessage, JmsHeaders.TIMESTAMP, timestamp); }
@Test public void jmsExpirationMappedToHeader() throws JMSException { long expiration = 1000L; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSExpiration(expiration); assertInboundHeader(jmsMessage, JmsHeaders.EXPIRATION, expiration); }
@Test public void contentTypePropertyMappedToHeader() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setStringProperty("content_type", "foo"); assertInboundHeader(jmsMessage, MessageHeaders.CONTENT_TYPE, "foo"); }
@Test public void userDefinedPropertyMappedToHeader() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setIntProperty("foo", 123); assertInboundHeader(jmsMessage, "foo", 123); }
@Test public void jmsDeliveryModeMappedToHeader() throws JMSException { int deliveryMode = 1; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSDeliveryMode(deliveryMode); assertInboundHeader(jmsMessage, JmsHeaders.DELIVERY_MODE, deliveryMode); }
@Test public void jmsMessageIdMappedToHeader() throws JMSException { String messageId = "ID:ABC-123"; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSMessageID(messageId); assertInboundHeader(jmsMessage, JmsHeaders.MESSAGE_ID, messageId); }
@Test public void jmsPriorityMappedToHeader() throws JMSException { int priority = 8; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSPriority(priority); assertInboundHeader(jmsMessage, JmsHeaders.PRIORITY, priority); }
@Test public void jmsReplyToMappedToHeader() throws JMSException { Destination replyTo = new Destination() {}; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSReplyTo(replyTo); assertInboundHeader(jmsMessage, JmsHeaders.REPLY_TO, replyTo); }
@Test public void jmsTypeMappedToHeader() throws JMSException { String type = "testing"; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSType(type); assertInboundHeader(jmsMessage, JmsHeaders.TYPE, type); }
@Test public void customPayloadConverter() throws JMSException { TextMessage jmsMsg = new StubTextMessage("1224"); this.converter.setPayloadConverter(new TestMessageConverter()); Message<?> msg = (Message<?>) this.converter.fromMessage(jmsMsg); assertEquals(1224L, msg.getPayload()); }
@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 userDefinedPropertyMappedToHeaderWithCustomPrefix() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setIntProperty("foo", 123); mapper.setInboundPrefix("custom_"); assertInboundHeader(jmsMessage, "custom_foo", 123); }
@Test public void userDefinedPropertyMappedFromHeader() throws JMSException { Message<String> message = initBuilder() .setHeader("foo", 123) .build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); Object value = jmsMessage.getObjectProperty("foo"); assertNotNull(value); assertEquals(Integer.class, value.getClass()); assertEquals(123, ((Integer) value).intValue()); }
@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 JmsReplyToIgnoredIfIncorrectType() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.REPLY_TO, "not-a-destination").build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSReplyTo()); }
@Test public void jmsTypeIgnoredIfIncorrectType() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.TYPE, 123).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSType()); }
@Test public void userDefinedPropertyWithUnsupportedType() throws JMSException { Destination destination = new Destination() {}; Message<String> message = initBuilder() .setHeader("destination", destination) .build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); Object value = jmsMessage.getObjectProperty("destination"); assertNull(value); }
@Test public void jmsCorrelationIdMappedFromHeader() throws JMSException { String jmsCorrelationId = "ABC-123"; Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, jmsCorrelationId).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNotNull(jmsMessage.getJMSCorrelationID()); assertEquals(jmsCorrelationId, jmsMessage.getJMSCorrelationID()); }
@Test public void replyUsesMessageConverterForPayload() throws JMSException { Session session = mock(Session.class); MessageConverter messageConverter = mock(MessageConverter.class); given(messageConverter.toMessage("Response", session)).willReturn(new StubTextMessage("Response")); Message<String> result = MessageBuilder.withPayload("Response").build(); MessagingMessageListenerAdapter listener = getSimpleInstance("echo", Message.class); listener.setMessageConverter(messageConverter); javax.jms.Message replyMessage = listener.buildMessage(session, result); verify(messageConverter, times(1)).toMessage("Response", session); assertNotNull("reply should never be null", replyMessage); assertEquals("Response", ((TextMessage) replyMessage).getText()); }