You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2014/10/13 20:16:54 UTC

[1/2] git commit: Finish work on refactoring the Amqp message property intercepter and updated tests to mock out the needed bits.

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 <ta...@gmail.com>
Authored: Mon Oct 13 13:47:03 2014 -0400
Committer: Timothy Bish <ta...@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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/2] git commit: Add tests for new clear calls.

Posted by ta...@apache.org.
Add tests for new clear calls.

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

Branch: refs/heads/master
Commit: f2900222ef4764c4809e7e912cbcebe84b89f09e
Parents: cee0c34
Author: Timothy Bish <ta...@gmail.com>
Authored: Mon Oct 13 14:16:40 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Mon Oct 13 14:16:40 2014 -0400

----------------------------------------------------------------------
 .../JmsMessagePropertyIntercepterTest.java      | 132 +++++++++++++++++++
 1 file changed, 132 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/f2900222/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
index c786622..4a54d06 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessagePropertyIntercepterTest.java
@@ -164,6 +164,16 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSDestinationClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        Mockito.when(message.getDestination()).thenReturn(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setDestination(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setDestination(null);
+    }
+
     //---------- JMSReplyTo --------------------------------------------------//
 
     @Test
@@ -247,6 +257,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSRepltyToClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setReplyTo(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setReplyTo(null);
+    }
+
     //---------- JMSType -----------------------------------------------------//
 
     @Test
@@ -326,6 +345,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSTypeClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setType(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setType(null);
+    }
+
     //---------- JMSDeliveryMode ---------------------------------------------//
 
     @Test
@@ -426,6 +454,20 @@ public class JmsMessagePropertyIntercepterTest {
             fail("Should have thrown an exception for this call");
         } catch (NumberFormatException e) {
         }
+        try {
+            JmsMessagePropertyIntercepter.setProperty(message, JMS_DELIVERY_MODE, null);
+            fail("Should have thrown an exception for this call");
+        } catch (NumberFormatException e) {
+        }
+    }
+
+    @Test
+    public void testJMSDeliveryModeClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setPersistent(true);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setPersistent(true);
     }
 
     //---------- JMSPriority ---------------------------------------------//
@@ -503,6 +545,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSPriorityClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setPriority(4);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setPriority(4);
+    }
+
     //---------- JMSMessageID ---------------------------------------------//
 
     @Test
@@ -582,6 +633,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSMessageIDClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setMessageId(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setMessageId(null);
+    }
+
     //---------- JMSTimestamp ---------------------------------------------//
 
     @Test
@@ -662,6 +722,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSTimeStampClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setTimestamp(0);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setTimestamp(0);
+    }
+
     //---------- JMSCorrelationID ---------------------------------------------//
 
     @Test
@@ -741,6 +810,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSCorrelationIDClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setCorrelationId(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setCorrelationId(null);
+    }
+
     //---------- JMSExpiration ---------------------------------------------//
 
     @Test
@@ -821,6 +899,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSExpirationClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setExpiration(0);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setExpiration(0);
+    }
+
     //---------- JMSRedelivered ---------------------------------------------//
 
     @Test
@@ -910,6 +997,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSRedeliveredClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message, Mockito.never()).setRedelivered(false);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message).setRedelivered(false);
+    }
+
     //---------- JMSXGroupID ---------------------------------------------//
 
     @Test
@@ -978,6 +1074,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSXGroupIDClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message).setGroupId(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message, Mockito.times(2)).setGroupId(null);
+    }
+
     //---------- JMSXGroupSeq ---------------------------------------------//
 
     @Test
@@ -1046,6 +1151,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSXGroupSeqClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message).setGroupSequence(0);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message, Mockito.times(2)).setGroupSequence(0);
+    }
+
     //---------- JMSXDeliveryCount ---------------------------------------------//
 
     @Test
@@ -1114,6 +1228,15 @@ public class JmsMessagePropertyIntercepterTest {
         }
     }
 
+    @Test
+    public void testJMSXDeliveryCountClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message).setDeliveryCount(1);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message, Mockito.times(2)).setDeliveryCount(1);
+    }
+
     //---------- JMSXUserID ---------------------------------------------//
 
     @Test
@@ -1192,4 +1315,13 @@ public class JmsMessagePropertyIntercepterTest {
         } catch (JMSException e) {
         }
     }
+
+    @Test
+    public void testJMSXUserIDClearedWhenRequested() throws JMSException {
+        JmsMessageFacade message = Mockito.mock(JmsMessageFacade.class);
+        JmsMessagePropertyIntercepter.clearProperties(message, true);
+        Mockito.verify(message).setUserId(null);
+        JmsMessagePropertyIntercepter.clearProperties(message, false);
+        Mockito.verify(message, Mockito.times(2)).setUserId(null);
+    }
 }


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