Repository: qpid-jms Updated Branches: refs/heads/master df2d911d4 -> 0251ae8ce
https://issues.apache.org/jira/browse/QPIDJMS-177 Adds some unit tests and fixes or improves a few minor things exposed in the tests. Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/0251ae8c Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/0251ae8c Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/0251ae8c Branch: refs/heads/master Commit: 0251ae8ce8cfea35d088fe60b89320cf3247f769 Parents: df2d911 Author: Timothy Bish <[email protected]> Authored: Mon May 23 13:22:27 2016 -0400 Committer: Timothy Bish <[email protected]> Committed: Mon May 23 13:22:27 2016 -0400 ---------------------------------------------------------------------- .../jms/policy/JmsDefaultPresettlePolicy.java | 76 ++- .../apache/qpid/jms/JmsPrefetchPolicyTest.java | 139 ------ .../apache/qpid/jms/JmsTemporaryQueueTest.java | 1 - .../apache/qpid/jms/JmsTemporaryTopicTest.java | 1 - .../policy/JmsDefaultPrefetchPolicyTest.java | 139 ++++++ .../policy/JmsDefaultPresettlePolicyTest.java | 459 +++++++++++++++++++ .../policy/JmsDefaultRedeliveryPolicyTest.java | 83 ++++ 7 files changed, 746 insertions(+), 152 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/main/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicy.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicy.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicy.java index 95ca57c..8560750 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicy.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicy.java @@ -57,10 +57,9 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { @Override public boolean isConsumerPresttled(JmsSession session, JmsDestination destination) { - if (session.isTransacted()) { return false; - } else if (presettleAll || presettleConsumers) { + } else if (destination != null && (presettleAll || presettleConsumers)) { return true; } else if (destination != null && destination.isQueue() && presettleQueueConsumers) { return true; @@ -73,10 +72,9 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { @Override public boolean isProducerPresttled(JmsSession session, JmsDestination destination) { - if (presettleAll || presettleProducers) { return true; - } else if (session.isTransacted() && presettleTransactedProducers) { + } else if (destination != null && session.isTransacted() && presettleTransactedProducers) { return true; } else if (destination != null && destination.isQueue() && presettleQueueProducers) { return true; @@ -109,7 +107,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleProducers setting for this policy. */ public boolean isPresettleProducers() { - return presettleProducers; + return presettleAll || presettleProducers; } /** @@ -127,7 +125,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleTopicProducers setting for this policy */ public boolean isPresettleTopicProducers() { - return presettleTopicProducers; + return presettleAll || presettleProducers || presettleTopicProducers; } /** @@ -147,7 +145,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleQueueSends setting for this policy */ public boolean isPresettleQueueProducers() { - return presettleQueueProducers; + return presettleAll || presettleProducers || presettleQueueProducers; } /** @@ -167,7 +165,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleTransactedSends setting for this policy */ public boolean isPresettleTransactedProducers() { - return presettleTransactedProducers; + return presettleAll || presettleProducers || presettleTransactedProducers; } /** @@ -184,7 +182,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleConsumers configuration value for this policy. */ public boolean isPresettleConsumers() { - return presettleConsumers; + return presettleAll || presettleConsumers; } /** @@ -202,7 +200,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleTopicConsumers setting for this policy. */ public boolean isPresettleTopicConsumers() { - return presettleTopicConsumers; + return presettleAll || presettleConsumers || presettleTopicConsumers; } /** @@ -220,7 +218,7 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { * @return the presettleQueueConsumers setting for this policy. */ public boolean isPresettleQueueConsumers() { - return presettleQueueConsumers; + return presettleAll || presettleConsumers || presettleQueueConsumers; } /** @@ -233,4 +231,60 @@ public class JmsDefaultPresettlePolicy implements JmsPresettlePolicy { public void setPresettleQueueConsumers(boolean presettleQueueConsumers) { this.presettleQueueConsumers = presettleQueueConsumers; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (presettleAll ? 1231 : 1237); + result = prime * result + (presettleConsumers ? 1231 : 1237); + result = prime * result + (presettleProducers ? 1231 : 1237); + result = prime * result + (presettleQueueConsumers ? 1231 : 1237); + result = prime * result + (presettleQueueProducers ? 1231 : 1237); + result = prime * result + (presettleTopicConsumers ? 1231 : 1237); + result = prime * result + (presettleTopicProducers ? 1231 : 1237); + result = prime * result + (presettleTransactedProducers ? 1231 : 1237); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + + JmsDefaultPresettlePolicy other = (JmsDefaultPresettlePolicy) obj; + if (presettleAll != other.presettleAll) { + return false; + } + if (presettleConsumers != other.presettleConsumers) { + return false; + } + if (presettleProducers != other.presettleProducers) { + return false; + } + if (presettleQueueConsumers != other.presettleQueueConsumers) { + return false; + } + if (presettleQueueProducers != other.presettleQueueProducers) { + return false; + } + if (presettleTopicConsumers != other.presettleTopicConsumers) { + return false; + } + if (presettleTopicProducers != other.presettleTopicProducers) { + return false; + } + if (presettleTransactedProducers != other.presettleTransactedProducers) { + return false; + } + + return true; + } } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsPrefetchPolicyTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsPrefetchPolicyTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsPrefetchPolicyTest.java deleted file mode 100644 index 79c8c74..0000000 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsPrefetchPolicyTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.qpid.jms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy; -import org.apache.qpid.jms.policy.JmsPrefetchPolicy; -import org.junit.Test; - -/** - * - */ -public class JmsPrefetchPolicyTest { - - @Test - public void testHashCode() { - JmsPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); - JmsPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(); - - assertTrue(policy1.hashCode() != 0); - assertEquals(policy1.hashCode(), policy1.hashCode()); - assertEquals(policy2.hashCode(), policy2.hashCode()); - } - - @Test - public void testJmsPrefetchPolicy() { - JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); - - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_TOPIC_PREFETCH, policy.getTopicPrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH, policy.getDurableTopicPrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_PREFETCH, policy.getQueuePrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH, policy.getQueueBrowserPrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); - } - - @Test - public void testJmsPrefetchPolicyJmsPrefetchPolicy() { - JmsDefaultPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); - policy1.setTopicPrefetch(10); - policy1.setDurableTopicPrefetch(20); - policy1.setQueueBrowserPrefetch(30); - policy1.setQueuePrefetch(40); - policy1.setMaxPrefetchSize(100); - - JmsDefaultPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(policy1); - - assertEquals(policy1.getTopicPrefetch(), policy2.getTopicPrefetch()); - assertEquals(policy1.getDurableTopicPrefetch(), policy2.getDurableTopicPrefetch()); - assertEquals(policy1.getQueuePrefetch(), policy2.getQueuePrefetch()); - assertEquals(policy1.getQueueBrowserPrefetch(), policy2.getQueueBrowserPrefetch()); - assertEquals(policy1.getMaxPrefetchSize(), policy2.getMaxPrefetchSize()); - } - - @Test - public void testGetMaxPrefetchSize() { - JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); - assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); - policy.setMaxPrefetchSize(10); - assertEquals(10, policy.getMaxPrefetchSize()); - } - - @Test - public void testMaxPrefetchSizeIsHonored() { - JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); - assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); - policy.setMaxPrefetchSize(42); - assertEquals(42, policy.getMaxPrefetchSize()); - - policy.setTopicPrefetch(100); - policy.setDurableTopicPrefetch(100); - policy.setQueueBrowserPrefetch(100); - policy.setQueuePrefetch(100); - - assertEquals(42, policy.getTopicPrefetch()); - assertEquals(42, policy.getDurableTopicPrefetch()); - assertEquals(42, policy.getQueuePrefetch()); - assertEquals(42, policy.getQueueBrowserPrefetch()); - } - - @Test - public void testSetAll() { - JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); - - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_TOPIC_PREFETCH, policy.getTopicPrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH, policy.getDurableTopicPrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_PREFETCH, policy.getQueuePrefetch()); - assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH, policy.getQueueBrowserPrefetch()); - - policy.setAll(42); - - assertEquals(42, policy.getTopicPrefetch()); - assertEquals(42, policy.getDurableTopicPrefetch()); - assertEquals(42, policy.getQueuePrefetch()); - assertEquals(42, policy.getQueueBrowserPrefetch()); - } - - @Test - public void testEqualsObject() { - JmsPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); - JmsPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(); - - assertEquals(policy1, policy1); - assertEquals(policy1, policy2); - - JmsDefaultPrefetchPolicy policy3 = new JmsDefaultPrefetchPolicy(); - policy3.setTopicPrefetch(10); - JmsDefaultPrefetchPolicy policy4 = new JmsDefaultPrefetchPolicy(); - policy4.setQueuePrefetch(10); - JmsDefaultPrefetchPolicy policy5 = new JmsDefaultPrefetchPolicy(); - policy5.setDurableTopicPrefetch(10); - JmsDefaultPrefetchPolicy policy6 = new JmsDefaultPrefetchPolicy(); - policy6.setQueueBrowserPrefetch(10); - - assertFalse(policy1.equals(policy3)); - assertFalse(policy1.equals(policy4)); - assertFalse(policy1.equals(policy5)); - assertFalse(policy1.equals(policy6)); - - assertFalse(policy1.equals(null)); - assertFalse(policy1.equals("")); - } -} http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryQueueTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryQueueTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryQueueTest.java index 93ae0ea..6d86c23 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryQueueTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryQueueTest.java @@ -145,7 +145,6 @@ public class JmsTemporaryQueueTest extends QpidJmsTestCase { String unusedValue = "unusedValue"; JmsQueue queue = new JmsQueue(); - Map<String, String> props = new HashMap<String, String>(); props.put(NAME_PROP, name); props.put(unusedKey, unusedValue); http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryTopicTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryTopicTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryTopicTest.java index 5cd0be1..01138dd 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryTopicTest.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTemporaryTopicTest.java @@ -145,7 +145,6 @@ public class JmsTemporaryTopicTest extends QpidJmsTestCase { String unusedValue = "unusedValue"; JmsTopic topic = new JmsTopic(); - Map<String, String> props = new HashMap<String, String>(); props.put(NAME_PROP, name); props.put(unusedKey, unusedValue); http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPrefetchPolicyTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPrefetchPolicyTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPrefetchPolicyTest.java new file mode 100644 index 0000000..ed2620b --- /dev/null +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPrefetchPolicyTest.java @@ -0,0 +1,139 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.qpid.jms.policy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.apache.qpid.jms.policy.JmsDefaultPrefetchPolicy; +import org.apache.qpid.jms.policy.JmsPrefetchPolicy; +import org.junit.Test; + +/** + * + */ +public class JmsDefaultPrefetchPolicyTest { + + @Test + public void testHashCode() { + JmsPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); + JmsPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(); + + assertTrue(policy1.hashCode() != 0); + assertEquals(policy1.hashCode(), policy1.hashCode()); + assertEquals(policy2.hashCode(), policy2.hashCode()); + } + + @Test + public void testJmsPrefetchPolicy() { + JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); + + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_TOPIC_PREFETCH, policy.getTopicPrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH, policy.getDurableTopicPrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_PREFETCH, policy.getQueuePrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH, policy.getQueueBrowserPrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); + } + + @Test + public void testJmsPrefetchPolicyJmsPrefetchPolicy() { + JmsDefaultPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); + policy1.setTopicPrefetch(10); + policy1.setDurableTopicPrefetch(20); + policy1.setQueueBrowserPrefetch(30); + policy1.setQueuePrefetch(40); + policy1.setMaxPrefetchSize(100); + + JmsDefaultPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(policy1); + + assertEquals(policy1.getTopicPrefetch(), policy2.getTopicPrefetch()); + assertEquals(policy1.getDurableTopicPrefetch(), policy2.getDurableTopicPrefetch()); + assertEquals(policy1.getQueuePrefetch(), policy2.getQueuePrefetch()); + assertEquals(policy1.getQueueBrowserPrefetch(), policy2.getQueueBrowserPrefetch()); + assertEquals(policy1.getMaxPrefetchSize(), policy2.getMaxPrefetchSize()); + } + + @Test + public void testGetMaxPrefetchSize() { + JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); + assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); + policy.setMaxPrefetchSize(10); + assertEquals(10, policy.getMaxPrefetchSize()); + } + + @Test + public void testMaxPrefetchSizeIsHonored() { + JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); + assertEquals(JmsDefaultPrefetchPolicy.MAX_PREFETCH_SIZE, policy.getMaxPrefetchSize()); + policy.setMaxPrefetchSize(42); + assertEquals(42, policy.getMaxPrefetchSize()); + + policy.setTopicPrefetch(100); + policy.setDurableTopicPrefetch(100); + policy.setQueueBrowserPrefetch(100); + policy.setQueuePrefetch(100); + + assertEquals(42, policy.getTopicPrefetch()); + assertEquals(42, policy.getDurableTopicPrefetch()); + assertEquals(42, policy.getQueuePrefetch()); + assertEquals(42, policy.getQueueBrowserPrefetch()); + } + + @Test + public void testSetAll() { + JmsDefaultPrefetchPolicy policy = new JmsDefaultPrefetchPolicy(); + + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_TOPIC_PREFETCH, policy.getTopicPrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH, policy.getDurableTopicPrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_PREFETCH, policy.getQueuePrefetch()); + assertEquals(JmsDefaultPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH, policy.getQueueBrowserPrefetch()); + + policy.setAll(42); + + assertEquals(42, policy.getTopicPrefetch()); + assertEquals(42, policy.getDurableTopicPrefetch()); + assertEquals(42, policy.getQueuePrefetch()); + assertEquals(42, policy.getQueueBrowserPrefetch()); + } + + @Test + public void testEqualsObject() { + JmsPrefetchPolicy policy1 = new JmsDefaultPrefetchPolicy(); + JmsPrefetchPolicy policy2 = new JmsDefaultPrefetchPolicy(); + + assertEquals(policy1, policy1); + assertEquals(policy1, policy2); + + JmsDefaultPrefetchPolicy policy3 = new JmsDefaultPrefetchPolicy(); + policy3.setTopicPrefetch(10); + JmsDefaultPrefetchPolicy policy4 = new JmsDefaultPrefetchPolicy(); + policy4.setQueuePrefetch(10); + JmsDefaultPrefetchPolicy policy5 = new JmsDefaultPrefetchPolicy(); + policy5.setDurableTopicPrefetch(10); + JmsDefaultPrefetchPolicy policy6 = new JmsDefaultPrefetchPolicy(); + policy6.setQueueBrowserPrefetch(10); + + assertFalse(policy1.equals(policy3)); + assertFalse(policy1.equals(policy4)); + assertFalse(policy1.equals(policy5)); + assertFalse(policy1.equals(policy6)); + + assertFalse(policy1.equals(null)); + assertFalse(policy1.equals("")); + } +} http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicyTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicyTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicyTest.java new file mode 100644 index 0000000..8d8cb27 --- /dev/null +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultPresettlePolicyTest.java @@ -0,0 +1,459 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.qpid.jms.policy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.apache.qpid.jms.JmsDestination; +import org.apache.qpid.jms.JmsQueue; +import org.apache.qpid.jms.JmsSession; +import org.apache.qpid.jms.JmsTopic; +import org.junit.Test; +import org.mockito.Mockito; + +/** + * Test basic behavior of the JmsDefaultPresettlePolicy + */ +public class JmsDefaultPresettlePolicyTest { + + @Test + public void testIsConsumerPresettledPresettleAll() { + JmsDestination destination = new JmsQueue("test"); + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isConsumerPresttled(session, destination)); + assertFalse(policy.isProducerPresttled(session, null)); + + policy.setPresettleAll(true); + assertTrue(policy.isConsumerPresttled(session, destination)); + assertFalse(policy.isConsumerPresttled(session, null)); + } + + @Test + public void testIsProducerPresettledPresettleAll() { + JmsDestination destination = new JmsQueue("test"); + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isProducerPresttled(session, destination)); + assertFalse(policy.isProducerPresttled(session, null)); + + policy.setPresettleAll(true); + assertTrue(policy.isProducerPresttled(session, destination)); + assertTrue(policy.isProducerPresttled(session, null)); + } + + @Test + public void testIsConsumerPresettledPresettleConsumer() { + JmsDestination destination = new JmsQueue("test"); + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isConsumerPresttled(session, destination)); + assertFalse(policy.isConsumerPresttled(session, null)); + + policy.setPresettleConsumers(true); + assertTrue(policy.isConsumerPresttled(session, destination)); + assertFalse(policy.isConsumerPresttled(session, null)); + } + + @Test + public void testIsProducerPresettledPresettleProducers() { + JmsDestination destination = new JmsQueue("test"); + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isProducerPresttled(session, destination)); + assertFalse(policy.isProducerPresttled(session, null)); + + policy.setPresettleProducers(true); + assertTrue(policy.isProducerPresttled(session, destination)); + assertTrue(policy.isProducerPresttled(session, null)); + } + + @Test + public void testIsConsumerPresettledPresettleTopicConsumer() { + JmsDestination queue = new JmsQueue("test"); + JmsDestination topic = new JmsTopic("test"); + + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isConsumerPresttled(session, queue)); + assertFalse(policy.isConsumerPresttled(session, topic)); + assertFalse(policy.isConsumerPresttled(session, null)); + + policy.setPresettleTopicConsumers(true); + assertFalse(policy.isConsumerPresttled(session, queue)); + assertTrue(policy.isConsumerPresttled(session, topic)); + assertFalse(policy.isConsumerPresttled(session, null)); + } + + @Test + public void testIsConsumerPresettledPresettleQueueConsumer() { + JmsDestination queue = new JmsQueue("test"); + JmsDestination topic = new JmsTopic("test"); + + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isConsumerPresttled(session, queue)); + assertFalse(policy.isConsumerPresttled(session, topic)); + assertFalse(policy.isConsumerPresttled(session, null)); + + policy.setPresettleQueueConsumers(true); + assertTrue(policy.isConsumerPresttled(session, queue)); + assertFalse(policy.isConsumerPresttled(session, topic)); + assertFalse(policy.isConsumerPresttled(session, null)); + } + + @Test + public void testIsProducerPresettledPresettleTopicProducers() { + JmsDestination queue = new JmsQueue("test"); + JmsDestination topic = new JmsTopic("test"); + + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isProducerPresttled(session, queue)); + assertFalse(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + + policy.setPresettleTopicProducers(true); + assertFalse(policy.isProducerPresttled(session, queue)); + assertTrue(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + } + + @Test + public void testIsProducerPresettledPresettleQueueProducers() { + JmsDestination queue = new JmsQueue("test"); + JmsDestination topic = new JmsTopic("test"); + + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isProducerPresttled(session, queue)); + assertFalse(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + + policy.setPresettleQueueProducers(true); + assertTrue(policy.isProducerPresttled(session, queue)); + assertFalse(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + } + + @Test + public void testIsProducerPresettledPresettleTransactedProducers() { + JmsDestination queue = new JmsQueue("test"); + JmsDestination topic = new JmsTopic("test"); + + JmsSession session = Mockito.mock(JmsSession.class); + Mockito.when(session.isTransacted()).thenReturn(false); + + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isProducerPresttled(session, queue)); + assertFalse(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + + Mockito.when(session.isTransacted()).thenReturn(true); + + policy.setPresettleTransactedProducers(true); + assertTrue(policy.isProducerPresttled(session, queue)); + assertTrue(policy.isProducerPresttled(session, topic)); + assertFalse(policy.isProducerPresttled(session, null)); + } + + @Test + public void testPresettleAll() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + + assertFalse(policy.isPresettleAll()); + policy.setPresettleAll(true); + assertTrue(policy.isPresettleAll()); + + assertTrue(policy.isPresettleConsumers()); + assertTrue(policy.isPresettleQueueConsumers()); + assertTrue(policy.isPresettleTopicConsumers()); + assertTrue(policy.isPresettleProducers()); + assertTrue(policy.isPresettleQueueProducers()); + assertTrue(policy.isPresettleTopicProducers()); + assertTrue(policy.isPresettleTransactedProducers()); + + policy.setPresettleAll(false); + + assertFalse(policy.isPresettleConsumers()); + assertFalse(policy.isPresettleProducers()); + assertFalse(policy.isPresettleQueueConsumers()); + assertFalse(policy.isPresettleQueueProducers()); + assertFalse(policy.isPresettleTopicConsumers()); + assertFalse(policy.isPresettleTopicProducers()); + assertFalse(policy.isPresettleTransactedProducers()); + } + + @Test + public void testPresettleConsumers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + + assertFalse(policy.isPresettleConsumers()); + + policy.setPresettleConsumers(true); + + assertTrue(policy.isPresettleConsumers()); + assertTrue(policy.isPresettleQueueConsumers()); + assertTrue(policy.isPresettleTopicConsumers()); + + policy.setPresettleConsumers(false); + + assertFalse(policy.isPresettleConsumers()); + assertFalse(policy.isPresettleQueueConsumers()); + assertFalse(policy.isPresettleTopicConsumers()); + } + + @Test + public void testPresettleProducers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + + assertFalse(policy.isPresettleProducers()); + + policy.setPresettleProducers(true); + + assertTrue(policy.isPresettleProducers()); + assertTrue(policy.isPresettleQueueProducers()); + assertTrue(policy.isPresettleTopicProducers()); + + policy.setPresettleProducers(false); + + assertFalse(policy.isPresettleProducers()); + assertFalse(policy.isPresettleQueueProducers()); + assertFalse(policy.isPresettleTopicProducers()); + } + + @Test + public void testPresettleQueueProducers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isPresettleQueueProducers()); + + policy.setPresettleQueueProducers(true); + assertTrue(policy.isPresettleQueueProducers()); + + policy.setPresettleQueueProducers(false); + assertFalse(policy.isPresettleQueueProducers()); + } + + @Test + public void testPresettleTopicProducers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isPresettleTopicProducers()); + + policy.setPresettleTopicProducers(true); + assertTrue(policy.isPresettleTopicProducers()); + + policy.setPresettleTopicProducers(false); + assertFalse(policy.isPresettleTopicProducers()); + } + + @Test + public void testPresettleTransactedProducers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isPresettleTransactedProducers()); + + policy.setPresettleTransactedProducers(true); + assertTrue(policy.isPresettleTransactedProducers()); + + policy.setPresettleTransactedProducers(false); + assertFalse(policy.isPresettleTransactedProducers()); + } + + @Test + public void testPresettleTopicConsumers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isPresettleTopicConsumers()); + + policy.setPresettleTopicConsumers(true); + assertTrue(policy.isPresettleTopicConsumers()); + + policy.setPresettleTopicConsumers(false); + assertFalse(policy.isPresettleTopicConsumers()); + } + + @Test + public void testPresettleQueueConsumers() { + JmsDefaultPresettlePolicy policy = new JmsDefaultPresettlePolicy(); + assertFalse(policy.isPresettleQueueConsumers()); + + policy.setPresettleQueueConsumers(true); + assertTrue(policy.isPresettleQueueConsumers()); + + policy.setPresettleQueueConsumers(false); + assertFalse(policy.isPresettleQueueConsumers()); + } + + @Test + public void testEquals() { + JmsDefaultPresettlePolicy policy1 = new JmsDefaultPresettlePolicy(); + JmsDefaultPresettlePolicy policy2 = new JmsDefaultPresettlePolicy(); + + assertTrue(policy1.equals(policy1)); + assertTrue(policy1.equals(policy2)); + assertTrue(policy2.equals(policy1)); + assertFalse(policy1.equals(null)); + assertFalse(policy1.equals("test")); + + policy1.setPresettleAll(false); + policy1.setPresettleAll(true); + + assertFalse(policy1.equals(policy2)); + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(false); + policy1.setPresettleQueueProducers(true); + + assertFalse(policy2.equals(policy1)); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(false); + policy1.setPresettleQueueProducers(false); + policy1.setPresettleTransactedProducers(true); + + assertFalse(policy2.equals(policy1)); + } + + @Test + public void testHashCode() { + JmsDefaultPresettlePolicy policy1 = new JmsDefaultPresettlePolicy(); + JmsDefaultPresettlePolicy policy2 = new JmsDefaultPresettlePolicy(); + + assertEquals(policy1.hashCode(), policy2.hashCode()); + + policy1.setPresettleAll(false); + policy2.setPresettleAll(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(false); + policy1.setPresettleQueueProducers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + + policy1.setPresettleAll(false); + policy1.setPresettleProducers(false); + policy2.setPresettleConsumers(false); + policy2.setPresettleTopicConsumers(false); + policy2.setPresettleQueueConsumers(false); + policy1.setPresettleTopicProducers(false); + policy1.setPresettleQueueProducers(false); + policy1.setPresettleTransactedProducers(true); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + } +} http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/0251ae8c/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultRedeliveryPolicyTest.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultRedeliveryPolicyTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultRedeliveryPolicyTest.java new file mode 100644 index 0000000..d80a18e --- /dev/null +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/policy/JmsDefaultRedeliveryPolicyTest.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.qpid.jms.policy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.apache.qpid.jms.JmsDestination; +import org.apache.qpid.jms.JmsQueue; +import org.junit.Test; + +/** + * Test for the Default Redelivery Policy object. + */ +public class JmsDefaultRedeliveryPolicyTest { + + @Test + public void testDefaults() { + JmsDestination destination = new JmsQueue("test"); + JmsDefaultRedeliveryPolicy policy = new JmsDefaultRedeliveryPolicy(); + + assertEquals(JmsDefaultRedeliveryPolicy.DEFAULT_MAX_REDELIVERIES, policy.getMaxRedeliveries(destination)); + } + + @Test + public void testSetMaxRedeliveries() { + JmsDestination destination = new JmsQueue("test"); + JmsDefaultRedeliveryPolicy policy = new JmsDefaultRedeliveryPolicy(); + + policy.setMaxRedeliveries(JmsDefaultRedeliveryPolicy.DEFAULT_MAX_REDELIVERIES + 1); + + assertFalse(JmsDefaultRedeliveryPolicy.DEFAULT_MAX_REDELIVERIES == policy.getMaxRedeliveries(destination)); + + assertEquals(JmsDefaultRedeliveryPolicy.DEFAULT_MAX_REDELIVERIES + 1, policy.getMaxRedeliveries()); + assertEquals(JmsDefaultRedeliveryPolicy.DEFAULT_MAX_REDELIVERIES + 1, policy.getMaxRedeliveries(destination)); + } + + @Test + public void testEquals() { + JmsDefaultRedeliveryPolicy policy1 = new JmsDefaultRedeliveryPolicy(); + JmsDefaultRedeliveryPolicy policy2 = new JmsDefaultRedeliveryPolicy(); + + assertTrue(policy1.equals(policy1)); + assertTrue(policy1.equals(policy2)); + assertTrue(policy2.equals(policy1)); + assertFalse(policy1.equals(null)); + assertFalse(policy1.equals("test")); + + policy1.setMaxRedeliveries(5); + policy2.setMaxRedeliveries(6); + + assertFalse(policy1.equals(policy2)); + assertFalse(policy2.equals(policy1)); + } + + @Test + public void testHashCode() { + JmsDefaultRedeliveryPolicy policy1 = new JmsDefaultRedeliveryPolicy(); + JmsDefaultRedeliveryPolicy policy2 = new JmsDefaultRedeliveryPolicy(); + + assertEquals(policy1.hashCode(), policy2.hashCode()); + + policy1.setMaxRedeliveries(5); + policy2.setMaxRedeliveries(6); + + assertFalse(policy1.hashCode() == policy2.hashCode()); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
