Repository: qpid-jms
Updated Branches:
  refs/heads/master e153f205e -> 6e1f4f672


https://issues.apache.org/jira/browse/QPIDJMS-177

Add some additional test coverage and ensure copy methods fully copy the
policy objects.

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

Branch: refs/heads/master
Commit: 6e1f4f672a91618a2dd2caf83490c60295d7e6cc
Parents: e153f20
Author: Timothy Bish <[email protected]>
Authored: Tue Jun 7 16:59:19 2016 -0400
Committer: Timothy Bish <[email protected]>
Committed: Tue Jun 7 16:59:19 2016 -0400

----------------------------------------------------------------------
 .../apache/qpid/jms/meta/JmsConnectionInfo.java |  28 +++--
 .../apache/qpid/jms/meta/JmsConsumerInfo.java   |   5 +
 .../apache/qpid/jms/meta/JmsSessionInfo.java    |  20 ++++
 .../qpid/jms/JmsConnectionFactoryTest.java      | 115 ++++++++++++++++++-
 .../qpid/jms/meta/JmsConnectionInfoTest.java    |  18 ++-
 .../qpid/jms/meta/JmsConsumerInfoTest.java      |   5 +
 .../qpid/jms/meta/JmsSessionInfoTest.java       |  16 ++-
 7 files changed, 194 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
index f6bf6a7..b98af14 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
@@ -63,10 +63,10 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
     private String queuePrefix = null;
     private String topicPrefix = null;
 
-    private JmsPrefetchPolicy prefetchPolicy = new JmsDefaultPrefetchPolicy();
-    private JmsRedeliveryPolicy redeliveryPolicy = new 
JmsDefaultRedeliveryPolicy();
-    private JmsPresettlePolicy presettlePolicy = new 
JmsDefaultPresettlePolicy();
-    private JmsMessageIDPolicy messageIDPolicy = new 
JmsDefaultMessageIDPolicy();
+    private JmsPrefetchPolicy prefetchPolicy;
+    private JmsRedeliveryPolicy redeliveryPolicy;
+    private JmsPresettlePolicy presettlePolicy;
+    private JmsMessageIDPolicy messageIDPolicy;
 
     private volatile byte[] encodedUserId;
 
@@ -97,10 +97,10 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
         copy.topicPrefix = topicPrefix;
         copy.connectTimeout = connectTimeout;
         copy.validatePropertyNames = validatePropertyNames;
-        copy.messageIDPolicy = messageIDPolicy;
-        copy.prefetchPolicy = prefetchPolicy.copy();
-        copy.redeliveryPolicy = redeliveryPolicy.copy();
-        copy.presettlePolicy = presettlePolicy.copy();
+        copy.messageIDPolicy = getMessageIDPolicy().copy();
+        copy.prefetchPolicy = getPrefetchPolicy().copy();
+        copy.redeliveryPolicy = getRedeliveryPolicy().copy();
+        copy.presettlePolicy = getPresettlePolicy().copy();
     }
 
     public boolean isForceAsyncSend() {
@@ -261,6 +261,9 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
     }
 
     public JmsPrefetchPolicy getPrefetchPolicy() {
+        if (prefetchPolicy == null) {
+            prefetchPolicy = new JmsDefaultPrefetchPolicy();
+        }
         return prefetchPolicy;
     }
 
@@ -269,6 +272,9 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
     }
 
     public JmsRedeliveryPolicy getRedeliveryPolicy() {
+        if (redeliveryPolicy == null) {
+            redeliveryPolicy = new JmsDefaultRedeliveryPolicy();
+        }
         return redeliveryPolicy;
     }
 
@@ -277,6 +283,9 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
     }
 
     public JmsPresettlePolicy getPresettlePolicy() {
+        if (presettlePolicy == null) {
+            presettlePolicy = new JmsDefaultPresettlePolicy();
+        }
         return presettlePolicy;
     }
 
@@ -285,6 +294,9 @@ public final class JmsConnectionInfo implements 
JmsResource, Comparable<JmsConne
     }
 
     public JmsMessageIDPolicy getMessageIDPolicy() {
+        if (messageIDPolicy == null) {
+            messageIDPolicy = new JmsDefaultMessageIDPolicy();
+        }
         return messageIDPolicy;
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConsumerInfo.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConsumerInfo.java 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConsumerInfo.java
index ef8a939..ab72d7c 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConsumerInfo.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConsumerInfo.java
@@ -17,6 +17,7 @@
 package org.apache.qpid.jms.meta;
 
 import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.policy.JmsRedeliveryPolicy;
 
 public final class JmsConsumerInfo implements JmsResource, 
Comparable<JmsConsumerInfo> {
@@ -69,6 +70,7 @@ public final class JmsConsumerInfo implements JmsResource, 
Comparable<JmsConsume
         info.noLocal = noLocal;
         info.acknowledgementMode = acknowledgementMode;
         info.lastDeliveredSequenceId = lastDeliveredSequenceId;
+        info.redeliveryPolicy = getRedeliveryPolicy().copy();
     }
 
     public boolean isDurable() {
@@ -165,6 +167,9 @@ public final class JmsConsumerInfo implements JmsResource, 
Comparable<JmsConsume
     }
 
     public JmsRedeliveryPolicy getRedeliveryPolicy() {
+        if (redeliveryPolicy == null) {
+            redeliveryPolicy = new JmsDefaultRedeliveryPolicy();
+        }
         return redeliveryPolicy;
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsSessionInfo.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsSessionInfo.java 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsSessionInfo.java
index a4733b1..6e87480 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsSessionInfo.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsSessionInfo.java
@@ -18,6 +18,10 @@ package org.apache.qpid.jms.meta;
 
 import javax.jms.Session;
 
+import org.apache.qpid.jms.policy.JmsDefaultMessageIDPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPresettlePolicy;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.policy.JmsMessageIDPolicy;
 import org.apache.qpid.jms.policy.JmsPrefetchPolicy;
 import org.apache.qpid.jms.policy.JmsPresettlePolicy;
@@ -58,6 +62,10 @@ public final class JmsSessionInfo implements JmsResource, 
Comparable<JmsSessionI
     private void copy(JmsSessionInfo copy) {
         copy.acknowledgementMode = acknowledgementMode;
         copy.sendAcksAsync = sendAcksAsync;
+        copy.redeliveryPolicy = getRedeliveryPolicy().copy();
+        copy.presettlePolicy = getPresettlePolicy().copy();
+        copy.prefetchPolicy = getPrefetchPolicy().copy();
+        copy.messageIDPolicy = getMessageIDPolicy().copy();
     }
 
     @Override
@@ -122,6 +130,9 @@ public final class JmsSessionInfo implements JmsResource, 
Comparable<JmsSessionI
     }
 
     public JmsMessageIDPolicy getMessageIDPolicy() {
+        if (messageIDPolicy == null) {
+            messageIDPolicy = new JmsDefaultMessageIDPolicy();
+        }
         return messageIDPolicy;
     }
 
@@ -130,6 +141,9 @@ public final class JmsSessionInfo implements JmsResource, 
Comparable<JmsSessionI
     }
 
     public JmsPrefetchPolicy getPrefetchPolicy() {
+        if (prefetchPolicy == null) {
+            prefetchPolicy = new JmsDefaultPrefetchPolicy();
+        }
         return prefetchPolicy;
     }
 
@@ -138,6 +152,9 @@ public final class JmsSessionInfo implements JmsResource, 
Comparable<JmsSessionI
     }
 
     public JmsPresettlePolicy getPresettlePolicy() {
+        if (presettlePolicy == null) {
+            presettlePolicy = new JmsDefaultPresettlePolicy();
+        }
         return presettlePolicy;
     }
 
@@ -146,6 +163,9 @@ public final class JmsSessionInfo implements JmsResource, 
Comparable<JmsSessionI
     }
 
     public JmsRedeliveryPolicy getRedeliveryPolicy() {
+        if (redeliveryPolicy == null) {
+            redeliveryPolicy = new JmsDefaultRedeliveryPolicy();
+        }
         return redeliveryPolicy;
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
index 48e6c63..efb29f5 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsConnectionFactoryTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
@@ -38,6 +39,8 @@ import javax.jms.ExceptionListener;
 import javax.jms.JMSException;
 
 import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPresettlePolicy;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.test.QpidJmsTestCase;
 import org.apache.qpid.jms.util.IdGenerator;
 import org.junit.Test;
@@ -86,8 +89,6 @@ public class JmsConnectionFactoryTest extends QpidJmsTestCase 
{
         factory.setConnectTimeout(TimeUnit.SECONDS.toMillis(30));
         factory.setCloseTimeout(TimeUnit.SECONDS.toMillis(45));
 
-        ((JmsDefaultPrefetchPolicy) factory.getPrefetchPolicy()).setAll(1);
-
         JmsConnection connection = (JmsConnection) factory.createConnection();
         assertNotNull(connection);
 
@@ -104,8 +105,20 @@ public class JmsConnectionFactoryTest extends 
QpidJmsTestCase {
 
         assertEquals(TimeUnit.SECONDS.toMillis(30), 
connection.getConnectTimeout());
         assertEquals(TimeUnit.SECONDS.toMillis(45), 
connection.getCloseTimeout());
+    }
+
+    @Test
+    public void testConnectionFactoryPrefetchPolicyIsAppliedToConnection() 
throws JMSException {
+        JmsConnectionFactory factory = new JmsConnectionFactory(USER, 
PASSWORD, "mock://localhost");
+
+        ((JmsDefaultPrefetchPolicy) factory.getPrefetchPolicy()).setAll(1);
+
+        JmsConnection connection = (JmsConnection) factory.createConnection();
+        assertNotNull(connection);
 
         JmsDefaultPrefetchPolicy prefetchPolicy = (JmsDefaultPrefetchPolicy) 
connection.getPrefetchPolicy();
+        assertNotNull(prefetchPolicy);
+        assertNotSame(factory.getPrefetchPolicy(), prefetchPolicy);
 
         assertEquals(1, prefetchPolicy.getTopicPrefetch());
         assertEquals(1, prefetchPolicy.getQueuePrefetch());
@@ -114,6 +127,42 @@ public class JmsConnectionFactoryTest extends 
QpidJmsTestCase {
     }
 
     @Test
+    public void testConnectionFactoryPresettlePolicyIsAppliedToConnection() 
throws JMSException {
+        JmsConnectionFactory factory = new JmsConnectionFactory(USER, 
PASSWORD, "mock://localhost");
+
+        JmsDefaultPresettlePolicy presettlePolicy = 
(JmsDefaultPresettlePolicy) factory.getPresettlePolicy();
+
+        presettlePolicy.setPresettleAll(true);
+
+        JmsConnection connection = (JmsConnection) factory.createConnection();
+        assertNotNull(connection);
+
+        presettlePolicy = (JmsDefaultPresettlePolicy) 
connection.getPresettlePolicy();
+        assertNotNull(presettlePolicy);
+        assertNotSame(factory.getPresettlePolicy(), presettlePolicy);
+
+        assertTrue(presettlePolicy.isPresettleAll());
+    }
+
+    @Test
+    public void testConnectionFactoryRedeliveryPolicyIsAppliedToConnection() 
throws JMSException {
+        JmsConnectionFactory factory = new JmsConnectionFactory(USER, 
PASSWORD, "mock://localhost");
+
+        JmsDefaultRedeliveryPolicy redeliveryPolicy = 
(JmsDefaultRedeliveryPolicy) factory.getRedeliveryPolicy();
+
+        redeliveryPolicy.setMaxRedeliveries(100);
+
+        JmsConnection connection = (JmsConnection) factory.createConnection();
+        assertNotNull(connection);
+
+        redeliveryPolicy = (JmsDefaultRedeliveryPolicy) 
connection.getRedeliveryPolicy();
+        assertNotNull(redeliveryPolicy);
+        assertNotSame(factory.getRedeliveryPolicy(), redeliveryPolicy);
+
+        assertEquals(100, redeliveryPolicy.getMaxRedeliveries());
+    }
+
+    @Test
     public void testConnectionGetConfiguredURIApplied() throws Exception {
         URI mock = new URI("mock://localhost");
 
@@ -418,6 +467,68 @@ public class JmsConnectionFactoryTest extends 
QpidJmsTestCase {
         assertEquals("Properties were not equal", props, props2);
     }
 
+    /**
+     * The presettle policy is maintained in a child-object, which we extract 
the properties from
+     * when serializing the factory. Ensure this functions by doing a round 
trip on a factory
+     * configured with some new presettle configuration via the URI.
+     *
+     * @throws Exception if an error occurs during the test.
+     */
+    @Test
+    public void testSerializeThenDeserializeMaintainsPresettlePolicy() throws 
Exception {
+        String presettleAllValue = "true";
+        String presettleAllKey = "presettlePolicy.presettleAll";
+        String uri = "amqp://localhost:1234?jms." + presettleAllKey + "=" + 
presettleAllValue;
+
+        JmsConnectionFactory cf = new JmsConnectionFactory(uri);
+        Map<String, String> props = cf.getProperties();
+
+        assertTrue("Props dont contain expected presettle policy change", 
props.containsKey(presettleAllKey));
+        assertEquals("Unexpected value", presettleAllValue, 
props.get(presettleAllKey));
+
+        Object roundTripped = roundTripSerialize(cf);
+
+        assertNotNull("Null object returned", roundTripped);
+        assertEquals("Unexpected type", JmsConnectionFactory.class, 
roundTripped.getClass());
+
+        Map<String, String> props2 = 
((JmsConnectionFactory)roundTripped).getProperties();
+        assertTrue("Props dont contain expected presettle policy change", 
props2.containsKey(presettleAllKey));
+        assertEquals("Unexpected value", presettleAllValue, 
props2.get(presettleAllKey));
+
+        assertEquals("Properties were not equal", props, props2);
+    }
+
+    /**
+     * The message ID policy is maintained in a child-object, which we extract 
the properties from
+     * when serializing the factory. Ensure this functions by doing a round 
trip on a factory
+     * configured with some new message ID configuration via the URI.
+     *
+     * @throws Exception if an error occurs during the test.
+     */
+    @Test
+    public void testSerializeThenDeserializeMaintainsMessageIDPolicy() throws 
Exception {
+        String messageIDTypeValue = "UUID";
+        String messageIDTypeKey = "messageIDPolicy.messageIDType";
+        String uri = "amqp://localhost:1234?jms." + messageIDTypeKey + "=" + 
messageIDTypeValue;
+
+        JmsConnectionFactory cf = new JmsConnectionFactory(uri);
+        Map<String, String> props = cf.getProperties();
+
+        assertTrue("Props dont contain expected message ID policy change", 
props.containsKey(messageIDTypeKey));
+        assertEquals("Unexpected value", messageIDTypeValue, 
props.get(messageIDTypeKey));
+
+        Object roundTripped = roundTripSerialize(cf);
+
+        assertNotNull("Null object returned", roundTripped);
+        assertEquals("Unexpected type", JmsConnectionFactory.class, 
roundTripped.getClass());
+
+        Map<String, String> props2 = 
((JmsConnectionFactory)roundTripped).getProperties();
+        assertTrue("Props dont contain expected message ID policy change", 
props2.containsKey(messageIDTypeKey));
+        assertEquals("Unexpected value", messageIDTypeValue, 
props2.get(messageIDTypeKey));
+
+        assertEquals("Properties were not equal", props, props2);
+    }
+
     @Test
     public void testSetRemoteURIThrowsOnNullURI() throws Exception {
         JmsConnectionFactory cf = new JmsConnectionFactory();

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
index 5c44469..8e4fb23 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConnectionInfoTest.java
@@ -19,11 +19,16 @@ package org.apache.qpid.jms.meta;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.qpid.jms.policy.JmsDefaultMessageIDPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPresettlePolicy;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.util.IdGenerator;
 import org.junit.Before;
 import org.junit.Test;
@@ -71,8 +76,12 @@ public class JmsConnectionInfoTest {
         info.setSendTimeout(150);
         info.setTopicPrefix("topic");
         info.setUsername("user");
-        boolean validatePropertyNames = ! info.isValidatePropertyNames();
+        boolean validatePropertyNames = !info.isValidatePropertyNames();
         info.setValidatePropertyNames(validatePropertyNames);
+        info.setMessageIDPolicy(new JmsDefaultMessageIDPolicy());
+        info.setPrefetchPolicy(new JmsDefaultPrefetchPolicy());
+        info.setPresettlePolicy(new JmsDefaultPresettlePolicy());
+        info.setRedeliveryPolicy(new JmsDefaultRedeliveryPolicy());
 
         JmsConnectionInfo copy = info.copy();
 
@@ -89,8 +98,13 @@ public class JmsConnectionInfoTest {
         assertEquals("user", copy.getUsername());
         assertEquals(validatePropertyNames, copy.isValidatePropertyNames());
 
+        assertNotSame(info.getPrefetchPolicy(), copy.getPrefetchPolicy());
+        assertNotSame(info.getPresettlePolicy(), copy.getPresettlePolicy());
+        assertNotSame(info.getRedeliveryPolicy(), copy.getRedeliveryPolicy());
+        assertNotSame(info.getMessageIDPolicy(), copy.getMessageIDPolicy());
+
         assertEquals(info, copy);
-}
+    }
 
     @Test
     public void testCompareTo() {

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConsumerInfoTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConsumerInfoTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConsumerInfoTest.java
index 6f2ed39..20ff635 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConsumerInfoTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsConsumerInfoTest.java
@@ -19,12 +19,14 @@ package org.apache.qpid.jms.meta;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.qpid.jms.JmsTopic;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.util.IdGenerator;
 import org.junit.Before;
 import org.junit.Test;
@@ -90,6 +92,7 @@ public class JmsConsumerInfoTest {
         info.setPrefetchSize(123456);
         info.setSelector("select");
         info.setSubscriptionName("name");
+        info.setRedeliveryPolicy(new JmsDefaultRedeliveryPolicy());
 
         JmsConsumerInfo copy = info.copy();
 
@@ -103,6 +106,8 @@ public class JmsConsumerInfoTest {
         assertEquals("select", copy.getSelector());
         assertEquals("name", copy.getSubscriptionName());
 
+        assertNotSame(info.getRedeliveryPolicy(), copy.getRedeliveryPolicy());
+
         assertEquals(info, copy);
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6e1f4f67/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsSessionInfoTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsSessionInfoTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsSessionInfoTest.java
index ba12836..2ba79ab 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsSessionInfoTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/meta/JmsSessionInfoTest.java
@@ -19,6 +19,7 @@ package org.apache.qpid.jms.meta;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
@@ -26,6 +27,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.jms.Session;
 
+import org.apache.qpid.jms.policy.JmsDefaultMessageIDPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy;
+import org.apache.qpid.jms.policy.JmsDefaultPresettlePolicy;
+import org.apache.qpid.jms.policy.JmsDefaultRedeliveryPolicy;
 import org.apache.qpid.jms.util.IdGenerator;
 import org.junit.Before;
 import org.junit.Test;
@@ -91,14 +96,23 @@ public class JmsSessionInfoTest {
 
         info.setAcknowledgementMode(2);
         info.setSendAcksAsync(true);
+        info.setMessageIDPolicy(new JmsDefaultMessageIDPolicy());
+        info.setPrefetchPolicy(new JmsDefaultPrefetchPolicy());
+        info.setPresettlePolicy(new JmsDefaultPresettlePolicy());
+        info.setRedeliveryPolicy(new JmsDefaultRedeliveryPolicy());
 
         JmsSessionInfo copy = info.copy();
 
         assertEquals(2, copy.getAcknowledgementMode());
         assertEquals(true, copy.isSendAcksAsync());
 
+        assertNotSame(info.getPrefetchPolicy(), copy.getPrefetchPolicy());
+        assertNotSame(info.getPresettlePolicy(), copy.getPresettlePolicy());
+        assertNotSame(info.getRedeliveryPolicy(), copy.getRedeliveryPolicy());
+        assertNotSame(info.getMessageIDPolicy(), copy.getMessageIDPolicy());
+
         assertEquals(info, copy);
-}
+    }
 
     @Test
     public void testCompareTo() {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to