Repository: qpid-jms Updated Branches: refs/heads/master 5c99fafaf -> 4d463bbb0
add tests for Properties section user-id field, update setUserId to handle null Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/4d463bbb Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/4d463bbb Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/4d463bbb Branch: refs/heads/master Commit: 4d463bbb0da4f8af81e0919539c223739061b6df Parents: 5c99faf Author: Robert Gemmell <[email protected]> Authored: Tue Oct 7 14:51:50 2014 +0100 Committer: Robert Gemmell <[email protected]> Committed: Tue Oct 7 14:55:16 2014 +0100 ---------------------------------------------------------------------- .../amqp/message/AmqpJmsMessageFacade.java | 7 ++- .../amqp/message/AmqpJmsMessageFacadeTest.java | 62 +++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4d463bbb/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java index be350c0..726665c 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java @@ -697,7 +697,12 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade { @Override public void setUserId(String userId) { - message.setUserId(userId.getBytes(UTF8)); + byte[] bytes = null; + if (userId != null) { + bytes = userId.getBytes(UTF8); + } + + message.setUserId(bytes); } @Override http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/4d463bbb/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java index 0dfbc25..58707ac 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java @@ -29,6 +29,7 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.nio.ByteBuffer; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -575,7 +576,6 @@ public class AmqpJmsMessageFacadeTest { assertEquals("expected ReplyToGroupId on message was not found", replyToGroupId, amqpMessageFacade.getReplyToGroupId()); } - //TODO: marker // --- group-sequence field --- @Test @@ -1088,6 +1088,66 @@ public class AmqpJmsMessageFacadeTest { assertEquals("Expected no expiration", 0, amqpMessageFacade.getExpiration()); } + // --- user-id field --- + + @Test + public void testGetUserIdIsNullForNewMessage() { + AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade(); + + assertNull("expected userid to be null on new message", amqpMessageFacade.getUserId()); + } + + @Test + public void testGetUserIdOnReceievedMessage() throws Exception { + String userIdString = "testValue"; + byte[] bytes = userIdString.getBytes("UTF-8"); + + Message message = Proton.message(); + + Properties props = new Properties(); + props.setUserId(new Binary(bytes)); + message.setProperties(props); + + AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message); + + assertNotNull("Expected a userid on received message", amqpMessageFacade.getUserId()); + assertEquals("Incorrect messageId value received", userIdString, amqpMessageFacade.getUserId()); + } + + /** + * Check that setting UserId on the message causes creation of the underlying properties + * section with the expected value. New messages lack the properties section section, + * as tested by {@link #testNewMessageHasNoUnderlyingPropertiesSection()}. + */ + @Test + public void testSetUserIdOnNewMessage() throws Exception { + String userIdString = "testValue"; + byte[] bytes = userIdString.getBytes("UTF-8"); + AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade(); + + amqpMessageFacade.setUserId(userIdString); + + assertNotNull("properties section was not created", amqpMessageFacade.getAmqpMessage().getProperties()); + assertTrue("bytes were not set as expected for userid", Arrays.equals(bytes, amqpMessageFacade.getAmqpMessage().getProperties().getUserId().getArray())); + assertEquals("userid not as expected", userIdString, amqpMessageFacade.getUserId()); + } + + /** + * Check that setting UserId null on the message causes any existing value to be cleared + */ + @Test + public void testSetUserIdNullOnMessageWithExistingUserId() throws Exception { + String userIdString = "testValue"; + AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade(); + + amqpMessageFacade.setUserId(userIdString); + amqpMessageFacade.setUserId(null); + + assertNotNull("properties section was not created", amqpMessageFacade.getAmqpMessage().getProperties()); + assertNull("bytes were not cleared as expected for userid", amqpMessageFacade.getAmqpMessage().getProperties().getUserId()); + assertNull("userid not as expected", amqpMessageFacade.getUserId()); + } + // ====== AMQP Message Facade copy() tests ======= // =============================================== --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
