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