Test and cleanup the transformation of Foreign messages. Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/6a221b16 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/6a221b16 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/6a221b16
Branch: refs/heads/master Commit: 6a221b1686f454cbeb35092ae0baf9909faaca4e Parents: 12cc2f3 Author: Timothy Bish <tabish...@gmail.com> Authored: Wed Oct 15 17:24:29 2014 -0400 Committer: Timothy Bish <tabish...@gmail.com> Committed: Wed Oct 15 17:24:29 2014 -0400 ---------------------------------------------------------------------- .../jms/message/JmsMessageTransformation.java | 2 - .../message/JmsMessageTransformationTest.java | 199 ++++++++++++++++++- 2 files changed, 198 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6a221b16/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java index 9dfd85b..896bc6a 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java @@ -124,7 +124,6 @@ public final class JmsMessageTransformation { } } catch (MessageEOFException e) { // Indicates all the bytes have been read from the source. - } catch (JMSException e) { } activeMessage = msg; @@ -156,7 +155,6 @@ public final class JmsMessageTransformation { } } catch (MessageEOFException e) { // Indicates all the stream values have been read from the source. - } catch (JMSException e) { } activeMessage = msg; http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6a221b16/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java index 9893946..f974e03 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.fail; import javax.jms.Destination; import javax.jms.JMSException; +import javax.jms.MessageEOFException; import javax.jms.Queue; import javax.jms.TemporaryQueue; import javax.jms.TemporaryTopic; @@ -37,7 +38,12 @@ import org.apache.qpid.jms.JmsDestination; import org.apache.qpid.jms.JmsTopic; import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade; import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory; +import org.apache.qpid.jms.message.foreign.ForeignJmsBytesMessage; +import org.apache.qpid.jms.message.foreign.ForeignJmsMapMessage; import org.apache.qpid.jms.message.foreign.ForeignJmsMessage; +import org.apache.qpid.jms.message.foreign.ForeignJmsObjectMessage; +import org.apache.qpid.jms.message.foreign.ForeignJmsStreamMessage; +import org.apache.qpid.jms.message.foreign.ForeignJmsTextMessage; import org.junit.Test; import org.mockito.Mockito; @@ -68,7 +74,7 @@ public class JmsMessageTransformationTest { } @Test - public void testBasicMessageTransformCreateNewMessage() throws JMSException { + public void testForeignMessageTransformCreateNewMessage() throws JMSException { ForeignJmsMessage foreignMessage = new ForeignJmsMessage(); JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); @@ -76,6 +82,197 @@ public class JmsMessageTransformationTest { assertFalse(transformed.equals(foreignMessage)); } + @Test + public void testEmptyForeignBytesMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsBytesMessage foreignMessage = new ForeignJmsBytesMessage(); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsBytesMessage); + JmsBytesMessage message = (JmsBytesMessage) transformed; + message.reset(); + assertEquals(0, message.getBodyLength()); + } + + @Test + public void testForeignBytesMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsBytesMessage foreignMessage = new ForeignJmsBytesMessage(); + foreignMessage.writeBoolean(true); + foreignMessage.setBooleanProperty("boolProperty", true); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsBytesMessage); + JmsBytesMessage message = (JmsBytesMessage) transformed; + message.reset(); + assertTrue(message.getBodyLength() > 0); + assertTrue(message.propertyExists("boolProperty")); + } + + @Test + public void testEmptyForeignTextMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsTextMessage foreignMessage = new ForeignJmsTextMessage(); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsTextMessage); + JmsTextMessage message = (JmsTextMessage) transformed; + assertNull(message.getText()); + } + + @Test + public void testForeignTextMessageTransformCreateNewMessage() throws JMSException { + final String MESSAGE_BODY = "TEST-MESSAGE-BODY"; + + ForeignJmsTextMessage foreignMessage = new ForeignJmsTextMessage(); + foreignMessage.setText(MESSAGE_BODY); + foreignMessage.setBooleanProperty("boolProperty", true); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsTextMessage); + JmsTextMessage message = (JmsTextMessage) transformed; + assertEquals(MESSAGE_BODY, message.getText()); + assertTrue(message.propertyExists("boolProperty")); + } + + @Test + public void testEmptyForeignMapMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsMapMessage foreignMessage = new ForeignJmsMapMessage(); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsMapMessage); + JmsMapMessage message = (JmsMapMessage) transformed; + assertFalse(message.getMapNames().hasMoreElements()); + } + + @Test + public void testForeignMapMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsMapMessage foreignMessage = new ForeignJmsMapMessage(); + foreignMessage.setBoolean("property1", true); + foreignMessage.setShort("property2", (short) 65535); + foreignMessage.setBooleanProperty("boolProperty", true); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsMapMessage); + JmsMapMessage message = (JmsMapMessage) transformed; + assertTrue(message.propertyExists("boolProperty")); + assertTrue(message.getMapNames().hasMoreElements()); + assertTrue(message.itemExists("property1")); + assertTrue(message.itemExists("property2")); + } + + @Test + public void testEmptyForeignStreamMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage(); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsStreamMessage); + JmsStreamMessage message = (JmsStreamMessage) transformed; + message.reset(); + try { + message.readBoolean(); + } catch (MessageEOFException ex) {} + } + + @Test + public void tesAbnormalForeignStreamMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage(); + foreignMessage.writeObject(true); + foreignMessage.reset(); + foreignMessage = Mockito.spy(foreignMessage); + + // Test for an odd StreamMessage that return null instead of throwing a MessageEOFException + Mockito.when(foreignMessage.readObject()).thenReturn(true). + thenReturn(false). + thenReturn(true). + thenReturn(null); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsStreamMessage); + JmsStreamMessage message = (JmsStreamMessage) transformed; + message.reset(); + + assertTrue(message.readBoolean()); + assertFalse(message.readBoolean()); + assertTrue(message.readBoolean()); + try { + message.readBoolean(); + } catch (MessageEOFException ex) {} + } + + @Test + public void testForeignStreamMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage(); + foreignMessage.writeBoolean(true); + foreignMessage.writeString("test"); + foreignMessage.writeBoolean(true); + foreignMessage.setBooleanProperty("boolProperty", true); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsStreamMessage); + JmsStreamMessage message = (JmsStreamMessage) transformed; + assertTrue(message.propertyExists("boolProperty")); + message.reset(); + assertTrue(message.readBoolean()); + assertEquals("test", message.readString()); + assertTrue(message.readBoolean()); + } + + @Test + public void testEmptyForeignObjectMessageTransformCreateNewMessage() throws JMSException { + ForeignJmsObjectMessage foreignMessage = new ForeignJmsObjectMessage(); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsObjectMessage); + JmsObjectMessage message = (JmsObjectMessage) transformed; + assertNull(message.getObject()); + } + + @Test + public void testForeignObjectMessageTransformCreateNewMessage() throws JMSException { + final String MESSAGE_BODY = "TEST-MESSAGE-BODY"; + + ForeignJmsObjectMessage foreignMessage = new ForeignJmsObjectMessage(); + foreignMessage.setBooleanProperty("boolProperty", true); + foreignMessage.setObject(MESSAGE_BODY); + + JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage); + assertNotSame(foreignMessage, transformed); + assertFalse(transformed.equals(foreignMessage)); + + assertTrue(transformed instanceof JmsObjectMessage); + JmsObjectMessage message = (JmsObjectMessage) transformed; + assertTrue(message.propertyExists("boolProperty")); + assertEquals(MESSAGE_BODY, message.getObject()); + } + //---------- Test Generic Property Copy ----------------------------------// @Test --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org