@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 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 userDefinedPropertyMappedFromHeaderWithCustomPrefix() throws JMSException { Message<String> message = initBuilder() .setHeader("foo", 123) .build(); mapper.setOutboundPrefix("custom_"); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); Object value = jmsMessage.getObjectProperty("custom_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 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()); }
@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 attemptToWriteDisallowedCorrelationIdStringPropertyIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, "abc") .setHeader("foo", "bar") .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setJMSCorrelationID(String correlationId) throws JMSException { throw new JMSException("illegal property"); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSCorrelationID()); assertNotNull(jmsMessage.getStringProperty("foo")); assertEquals("bar", jmsMessage.getStringProperty("foo")); }
@Test public void attemptToWriteDisallowedReplyToPropertyIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.REPLY_TO, new Destination() {}) .setHeader("foo", "bar") .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setJMSReplyTo(Destination replyTo) throws JMSException { throw new JMSException("illegal property"); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSReplyTo()); assertNotNull(jmsMessage.getStringProperty("foo")); assertEquals("bar", jmsMessage.getStringProperty("foo")); }
@Test public void attemptToWriteDisallowedTypePropertyIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.TYPE, "someType") .setHeader("foo", "bar") .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setJMSType(String type) throws JMSException { throw new JMSException("illegal property"); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSType()); assertNotNull(jmsMessage.getStringProperty("foo")); assertEquals("bar", jmsMessage.getStringProperty("foo")); }
@Test public void attemptToWriteDisallowedCorrelationIdNumberPropertyIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, 123) .setHeader("foo", "bar") .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setJMSCorrelationID(String correlationId) throws JMSException { throw new JMSException("illegal property"); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSCorrelationID()); assertNotNull(jmsMessage.getStringProperty("foo")); assertEquals("bar", jmsMessage.getStringProperty("foo")); }
@Test public void propertyMappingExceptionIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader("foo", 123) .setHeader("bad", 456) .setHeader("bar", 789) .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setObjectProperty(String name, Object value) throws JMSException { if (name.equals("bad")) { throw new JMSException("illegal property"); } super.setObjectProperty(name, value); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); Object foo = jmsMessage.getObjectProperty("foo"); assertNotNull(foo); Object bar = jmsMessage.getObjectProperty("bar"); assertNotNull(bar); Object bad = jmsMessage.getObjectProperty("bad"); assertNull(bad); }
@Test public void illegalArgumentExceptionIsNotFatal() throws JMSException { Message<String> message = initBuilder() .setHeader("foo", 123) .setHeader("bad", 456) .setHeader("bar", 789) .build(); javax.jms.Message jmsMessage = new StubTextMessage() { @Override public void setObjectProperty(String name, Object value) throws JMSException { if (name.equals("bad")) { throw new IllegalArgumentException("illegal property"); } super.setObjectProperty(name, value); } }; mapper.fromHeaders(message.getHeaders(), jmsMessage); Object foo = jmsMessage.getObjectProperty("foo"); assertNotNull(foo); Object bar = jmsMessage.getObjectProperty("bar"); assertNotNull(bar); Object bad = jmsMessage.getObjectProperty("bad"); assertNull(bad); }
@Test public void jmsReadOnlyPropertiesNotMapped() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.DESTINATION, new Destination() {}) .setHeader(JmsHeaders.DELIVERY_MODE, DeliveryMode.NON_PERSISTENT) .setHeader(JmsHeaders.EXPIRATION, 1000L) .setHeader(JmsHeaders.MESSAGE_ID, "abc-123") .setHeader(JmsHeaders.PRIORITY, 9) .setHeader(JmsHeaders.REDELIVERED, true) .setHeader(JmsHeaders.TIMESTAMP, System.currentTimeMillis()) .build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSDestination()); assertEquals(DeliveryMode.PERSISTENT, jmsMessage.getJMSDeliveryMode()); assertEquals(0, jmsMessage.getJMSExpiration()); assertNull(jmsMessage.getJMSMessageID()); assertEquals(javax.jms.Message.DEFAULT_PRIORITY, jmsMessage.getJMSPriority()); assertFalse(jmsMessage.getJMSRedelivered()); assertEquals(0, jmsMessage.getJMSTimestamp()); }