Repository: qpid-jms
Updated Branches:
  refs/heads/master 94febc97f -> f2900222e


Finish work on refactoring the Amqp message property intercepter and
updated tests to mock out the needed bits.  

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/cee0c341
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/cee0c341
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/cee0c341

Branch: refs/heads/master
Commit: cee0c3419666dfa69bb265eb175609db9c80d450
Parents: 94febc9
Author: Timothy Bish <tabish...@gmail.com>
Authored: Mon Oct 13 13:47:03 2014 -0400
Committer: Timothy Bish <tabish...@gmail.com>
Committed: Mon Oct 13 13:47:03 2014 -0400

----------------------------------------------------------------------
 .../jms/message/facade/JmsMessageFacade.java    |  2 +-
 .../amqp/message/AmqpJmsMessageFacade.java      | 48 ++++++-----
 .../AmqpJmsMessagePropertyIntercepter.java      |  7 +-
 .../amqp/message/AmqpJmsMessageFacadeTest.java  |  2 +-
 .../AmqpJmsMessagePropertyIntercepterTest.java  | 89 +++++++++++++-------
 5 files changed, 93 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cee0c341/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
index 20b912c..78130fb 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
@@ -123,7 +123,7 @@ public interface JmsMessageFacade {
      *
      * @throws JMSException if an error occurs while accessing the message 
properties.
      */
-    void clearProperties();
+    void clearProperties() throws JMSException;
 
     /**
      * Create a new instance and perform a deep copy of this object's

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cee0c341/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 ed4e0ae..c34ab87 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
@@ -169,11 +169,15 @@ public class AmqpJmsMessageFacade implements 
JmsMessageFacade {
      */
     @Override
     public Set<String> getPropertyNames() {
-        Set<String> properties = 
AmqpJmsMessagePropertyIntercepter.getPropertyNames(this);
+        return AmqpJmsMessagePropertyIntercepter.getPropertyNames(this);
+    }
+
+    public Set<String> getApplicationPropertyNames(Set<String> propertyNames) {
         if (applicationPropertiesMap != null) {
-            properties.addAll(applicationPropertiesMap.keySet());
+            propertyNames.addAll(applicationPropertiesMap.keySet());
         }
-        return properties;
+
+        return propertyNames;
     }
 
     @Override
@@ -247,9 +251,8 @@ public class AmqpJmsMessageFacade implements 
JmsMessageFacade {
     }
 
     @Override
-    public void clearProperties() {
-        clearAllApplicationProperties();
-        //TODO: should we clear some/all of those intercepted by 
AmqpJmsMessagePropertyIntercepter?
+    public void clearProperties() throws JMSException {
+        AmqpJmsMessagePropertyIntercepter.clearProperties(this);
     }
 
     @Override
@@ -616,14 +619,20 @@ public class AmqpJmsMessageFacade implements 
JmsMessageFacade {
      * based on the expiration value when sending the underlying AMQP message. 
A value of 0
      * means to clear the ttl field rather than set it to anything.
      *
-     * @param ttl the value to use, in range 0 <= x <= 2^32 - 1
+     * @param ttl
+     *        the value to use, in range 0 <= x <= 2^32 - 1
+     *
      * @throws MessageFormatException
      */
-    public void setAmqpTimeToLiveOverride(long ttl) throws 
MessageFormatException {
-        if (ttl >= 0 && ttl <= UINT_MAX) {
-            userSpecifiedTTL = ttl;
+    public void setAmqpTimeToLiveOverride(Long ttl) throws 
MessageFormatException {
+        if (ttl != null) {
+            if (ttl >= 0 && ttl <= UINT_MAX) {
+                userSpecifiedTTL = ttl;
+            } else {
+                throw new MessageFormatException(JMS_AMQP_TTL + " must be a 
long with value in range 0 to 2^32 - 1");
+            }
         } else {
-            throw new MessageFormatException(JMS_AMQP_TTL + " must be a long 
with value in range 0 to 2^32 - 1");
+            userSpecifiedTTL = null;
         }
     }
 
@@ -733,16 +742,13 @@ public class AmqpJmsMessageFacade implements 
JmsMessageFacade {
     @Override
     public void setGroupSequence(int groupSequence) {
         // This wraps it into the upper uint range if a negative was provided
-
-        // TODO Can a zero value clear the property?  Or do we really need 
specific
-        //      clear methods?
-        // if (groupSequence == 0) {
-        //     if (message.getProperties() != null) {
-        //        message.getProperties().setGroupSequence(null);
-        //     }
-        // }
-
-        message.setGroupSequence(groupSequence);
+        if (groupSequence == 0) {
+            if (message.getProperties() != null) {
+                message.getProperties().setGroupSequence(null);
+            }
+        } else {
+            message.setGroupSequence(groupSequence);
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cee0c341/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
index 8b354c1..df87a76 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepter.java
@@ -122,7 +122,7 @@ public class AmqpJmsMessagePropertyIntercepter {
 
             @Override
             public void clearProperty(AmqpJmsMessageFacade message) throws 
JMSException {
-                message.setAmqpTimeToLiveOverride(0);
+                message.setAmqpTimeToLiveOverride(null);
             }
         });
         PROPERTY_INTERCEPTERS.put(JMS_AMQP_REPLY_TO_GROUP_ID, new 
PropertyIntercepter() {
@@ -288,7 +288,8 @@ public class AmqpJmsMessagePropertyIntercepter {
                 names.add(entry.getKey());
             }
         }
-        return names;
+
+        return message.getApplicationPropertyNames(names);
     }
 
     /**
@@ -304,5 +305,7 @@ public class AmqpJmsMessagePropertyIntercepter {
         for (Entry<String, PropertyIntercepter> entry : 
PROPERTY_INTERCEPTERS.entrySet()) {
             entry.getValue().clearProperty(message);
         }
+
+        message.clearAllApplicationProperties();
     }
 }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cee0c341/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 363ebba..016ad86 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
@@ -193,7 +193,7 @@ public class AmqpJmsMessageFacadeTest extends 
AmqpJmsMessageTypesTestCase  {
         int producerTtl = 10;
 
         AmqpJmsMessageFacade amqpMessageFacade = 
createReceivedMessageFacade(createMockAmqpConsumer(), message);
-        amqpMessageFacade.setAmqpTimeToLiveOverride(overrideTtl);
+        amqpMessageFacade.setAmqpTimeToLiveOverride((long) overrideTtl);
 
         amqpMessageFacade.onSend(false, false, producerTtl);
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cee0c341/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepterTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepterTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepterTest.java
index ee7bcde..3a69ce9 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepterTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessagePropertyIntercepterTest.java
@@ -26,11 +26,15 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.util.Set;
+
 import javax.jms.JMSException;
 import javax.jms.MessageFormatException;
 
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
 
 public class AmqpJmsMessagePropertyIntercepterTest {
 
@@ -43,14 +47,14 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testGetPropertyWithNonInterceptedNameCallsIntoFacade() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
"SomeRandomPropertyName"));
         Mockito.verify(message).getApplicationProperty(Mockito.anyString());
     }
 
     @Test
     public void testSetPropertyWithNonInterceptedNameCallsIntoFacade() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         AmqpJmsMessagePropertyIntercepter.setProperty(message, 
"SomeRandomPropertyName", "Something");
         Mockito.doThrow(new 
JMSException("Expected")).when(message).setApplicationProperty(Mockito.anyString(),
 Mockito.anyString());
         try {
@@ -63,7 +67,7 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testPropertyExistsWithNonInterceptedNameCallsIntoFacade() 
throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertFalse(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
"SomeRandomPropertyName"));
         Mockito.verify(message).applicationPropertyExists(Mockito.anyString());
     }
@@ -77,20 +81,20 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testGetJmsAmqpTtlWhenNotSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_TTL));
     }
 
     @Test
     public void testSetJmsAmqpTtl() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         AmqpJmsMessagePropertyIntercepter.setProperty(message, JMS_AMQP_TTL, 
65536L);
         Mockito.verify(message).setAmqpTimeToLiveOverride(65536L);
     }
 
     @Test
     public void testGetJmsAmqpTtlWhenSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.hasAmqpTimeToLiveOverride()).thenReturn(true);
         Mockito.when(message.getAmqpTimeToLiveOverride()).thenReturn(65536L);
 
@@ -100,22 +104,23 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testJmsAmqpTtlNotInPropertyNamesWhenNotSet() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_TTL));
         
assertFalse(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_TTL));
     }
 
     @Test
     public void testJmsAmqpTtlInPropertyNamesWhenSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.hasAmqpTimeToLiveOverride()).thenReturn(true);
         Mockito.when(message.getAmqpTimeToLiveOverride()).thenReturn(65536L);
+        
Mockito.when(message.getApplicationPropertyNames(Mockito.anySetOf(String.class))).then(new
 PassPropertyNames());
         
assertTrue(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_TTL));
     }
 
     @Test
     public void testJmsAmqpTtlIPropertExistsWhenSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.hasAmqpTimeToLiveOverride()).thenReturn(true);
         Mockito.when(message.getAmqpTimeToLiveOverride()).thenReturn(65536L);
         assertTrue(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_TTL));
@@ -123,13 +128,13 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testJmsAmqpTtlPropertExistsWhenNotSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertFalse(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_TTL));
     }
 
     @Test
     public void testSetJmsAmqpTtlConversionChecks() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         try {
             AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_TTL, new byte[1]);
             fail("Should have thrown an exception for this call");
@@ -147,21 +152,21 @@ public class AmqpJmsMessagePropertyIntercepterTest {
     @Test
     public void testSetJmsAmqpReplyToGroupId() throws JMSException {
         String testValue = "ReplyToGroupId";
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID, testValue);
         Mockito.verify(message).setReplyToGroupId(testValue);
     }
 
     @Test
     public void testGetJmsAmqpReplyToGroupIdWhenNotSet() throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
     }
 
     @Test
     public void testGetJmsAmqpReplyToGroupIdWhenSet() throws JMSException {
         String testValue = "ReplyToGroupId";
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.getReplyToGroupId()).thenReturn(testValue);
         assertNotNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
         assertEquals(testValue, 
AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
@@ -169,7 +174,7 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testJmsJmsAmqpReplyToGroupIdNotInPropertyNamesWhenNotSet() 
throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
         
assertFalse(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_REPLY_TO_GROUP_ID));
     }
@@ -177,7 +182,8 @@ public class AmqpJmsMessagePropertyIntercepterTest {
     @Test
     public void testJmsAmqpReplyToGroupIdInPropertyNamesWhenSet() throws 
JMSException {
         String testValue = "ReplyToGroupId";
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
+        
Mockito.when(message.getApplicationPropertyNames(Mockito.anySetOf(String.class))).then(new
 PassPropertyNames());
         Mockito.when(message.getReplyToGroupId()).thenReturn(testValue);
         
assertTrue(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_REPLY_TO_GROUP_ID));
     }
@@ -185,14 +191,14 @@ public class AmqpJmsMessagePropertyIntercepterTest {
     @Test
     public void testJmsAmqpReplyToGroupIdPropertExistsWhenSet() throws 
JMSException {
         String testValue = "ReplyToGroupId";
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.getReplyToGroupId()).thenReturn(testValue);
         assertTrue(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
     }
 
     @Test
     public void testJmsAmqpReplyToGroupIdPropertExistsWhenNotSet() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         Mockito.when(message.getReplyToGroupId()).thenReturn(null);
         assertFalse(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_REPLY_TO_GROUP_ID));
         Mockito.when(message.getReplyToGroupId()).thenReturn("");
@@ -201,7 +207,7 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testSetJmsAmqpReplyToGroupIdConversionChecks() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         try {
             AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_REPLY_TO_GROUP_ID, new byte[1]);
             fail("Should have thrown an exception for this call");
@@ -218,14 +224,14 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testSetJmsAmqpTypedEncoding() throws JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_TYPED_ENCODING, true);
         Mockito.verify(message).setUseAmqpTypedEncoding(true);
     }
 
     @Test
     public void testSetJmsAmqpTypedEncodingOnNonObjectMessage() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         try {
             AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_TYPED_ENCODING, true);
             fail("Should have thrown an exception");
@@ -235,65 +241,88 @@ public class AmqpJmsMessagePropertyIntercepterTest {
 
     @Test
     public void testGetJmsAmqpTypedEncodingWithNonObjectMessage() throws 
JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertNull(AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testGetJmsAmqpTypedEncodingWhenUsingSerializatio() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(false);
         assertEquals(false, 
AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testGetJmsAmqpTypedEncodingWhenUsingAmqpTypes() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(true);
         assertEquals(true, 
AmqpJmsMessagePropertyIntercepter.getProperty(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testJmsAmqpTypedEncodingNotInPropertyNamesWhenNotSet() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(false);
         
assertFalse(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testJmsAmqpTypedEncodingInPropertyNamesWhenSet() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(true);
         
assertTrue(AmqpJmsMessagePropertyIntercepter.getPropertyNames(message).contains(JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testJmsAmqpTypedEncodingPropertExistsWhenSet() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(true);
         assertTrue(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testJmsAmqpTypedEncodingdPropertExistsWhenNotSet() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         Mockito.when(message.isAmqpTypedEncoding()).thenReturn(false);
         assertFalse(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testJmsAmqpTypedEncodingdPropertExistsWhenNotAnObjectMessage() 
throws JMSException {
-        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        AmqpJmsMessageFacade message = createAmqpMessageFacade();
         assertFalse(AmqpJmsMessagePropertyIntercepter.propertyExists(message, 
JMS_AMQP_TYPED_ENCODING));
     }
 
     @Test
     public void testSetJmsAmqpTypedEncodingConversionChecks() throws 
JMSException {
-        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        AmqpJmsObjectMessageFacade message = createAmqpObjectMessageFacade();
         try {
             AmqpJmsMessagePropertyIntercepter.setProperty(message, 
JMS_AMQP_TYPED_ENCODING, new byte[1]);
             fail("Should have thrown an exception for this call");
         } catch (JMSException e) {
         }
     }
+
+    //--------- Utilities 
----------------------------------------------------//
+
+    private AmqpJmsMessageFacade createAmqpMessageFacade() {
+        AmqpJmsMessageFacade message = 
Mockito.mock(AmqpJmsMessageFacade.class);
+        
Mockito.when(message.getApplicationPropertyNames(Mockito.anySetOf(String.class))).then(new
 PassPropertyNames());
+        return message;
+    }
+
+    private AmqpJmsObjectMessageFacade createAmqpObjectMessageFacade() {
+        AmqpJmsObjectMessageFacade message = 
Mockito.mock(AmqpJmsObjectMessageFacade.class);
+        
Mockito.when(message.getApplicationPropertyNames(Mockito.anySetOf(String.class))).then(new
 PassPropertyNames());
+        return message;
+    }
+
+    private class PassPropertyNames implements Answer<Set<String>> {
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public Set<String> answer(InvocationOnMock invocation) throws 
Throwable {
+            return (Set<String>) invocation.getArguments()[0];
+        }
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to