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]

Reply via email to