/* * 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()); } }