| /* |
| * 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.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 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; |
| |
| /** |
| * Tests for the JmsSessionInfo object |
| */ |
| public class JmsSessionInfoTest { |
| |
| private JmsSessionId firstId; |
| private JmsSessionId secondId; |
| |
| private JmsConnectionInfo connectionInfo; |
| |
| @Before |
| public void setUp() { |
| IdGenerator generator = new IdGenerator(); |
| |
| String rootId = generator.generateId(); |
| |
| firstId = new JmsSessionId(rootId, 1); |
| secondId = new JmsSessionId(rootId, 2); |
| |
| JmsConnectionId connectionId = new JmsConnectionId(generator.generateId()); |
| connectionInfo = new JmsConnectionInfo(connectionId); |
| } |
| |
| @Test(expected=IllegalArgumentException.class) |
| public void testExceptionWhenCreatedWithNullConnectionId() { |
| new JmsSessionInfo(null, 1); |
| } |
| |
| @Test(expected=IllegalArgumentException.class) |
| public void testExceptionWhenCreatedWithNullSessionId() { |
| new JmsSessionInfo(null); |
| } |
| |
| @Test |
| public void testCreateFromSessionId() { |
| JmsSessionInfo info = new JmsSessionInfo(firstId); |
| assertSame(firstId, info.getId()); |
| assertNotNull(info.toString()); |
| } |
| |
| @Test |
| public void testCreateFromConnectionInfo() { |
| JmsSessionInfo info = new JmsSessionInfo(connectionInfo, 1); |
| assertEquals(connectionInfo.getId(), info.getId().getParentId()); |
| } |
| |
| @Test |
| public void testIsTransacted() { |
| JmsSessionInfo info = new JmsSessionInfo(firstId); |
| info.setAcknowledgementMode(Session.AUTO_ACKNOWLEDGE); |
| assertFalse(info.isTransacted()); |
| info.setAcknowledgementMode(Session.SESSION_TRANSACTED); |
| assertTrue(info.isTransacted()); |
| } |
| |
| @Test |
| public void testCopy() { |
| JmsSessionInfo info = new JmsSessionInfo(firstId); |
| |
| 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() { |
| JmsSessionInfo first = new JmsSessionInfo(firstId); |
| JmsSessionInfo second = new JmsSessionInfo(secondId); |
| |
| assertEquals(-1, first.compareTo(second)); |
| assertEquals(0, first.compareTo(first)); |
| assertEquals(1, second.compareTo(first)); |
| } |
| |
| @Test |
| public void testHashCode() { |
| JmsSessionInfo first = new JmsSessionInfo(firstId); |
| JmsSessionInfo second = new JmsSessionInfo(secondId); |
| |
| assertEquals(first.hashCode(), first.hashCode()); |
| assertEquals(second.hashCode(), second.hashCode()); |
| |
| assertFalse(first.hashCode() == second.hashCode()); |
| } |
| |
| @Test |
| public void testEqualsCode() { |
| JmsSessionInfo first = new JmsSessionInfo(firstId); |
| JmsSessionInfo second = new JmsSessionInfo(secondId); |
| |
| assertEquals(first, first); |
| assertEquals(second, second); |
| |
| assertFalse(first.equals(second)); |
| assertFalse(second.equals(first)); |
| |
| assertFalse(first.equals(null)); |
| assertFalse(second.equals("test")); |
| } |
| |
| @Test |
| public void testVisit() throws Exception { |
| final JmsSessionInfo first = new JmsSessionInfo(firstId); |
| |
| final AtomicBoolean visited = new AtomicBoolean(); |
| |
| first.visit(new JmsDefaultResourceVisitor() { |
| |
| @Override |
| public void processSessionInfo(JmsSessionInfo info) { |
| assertEquals(first, info); |
| visited.set(true); |
| } |
| }); |
| |
| assertTrue(visited.get()); |
| } |
| |
| @Test |
| public void testGetMessageIDPolicyDefaults() { |
| final JmsSessionInfo info = new JmsSessionInfo(firstId); |
| |
| assertNotNull(info.getMessageIDPolicy()); |
| info.setMessageIDPolicy(null); |
| assertNotNull(info.getMessageIDPolicy()); |
| assertTrue(info.getMessageIDPolicy() instanceof JmsDefaultMessageIDPolicy); |
| } |
| |
| @Test |
| public void testGetPrefetchPolicyDefaults() { |
| final JmsSessionInfo info = new JmsSessionInfo(firstId); |
| |
| assertNotNull(info.getPrefetchPolicy()); |
| info.setPrefetchPolicy(null); |
| assertNotNull(info.getPrefetchPolicy()); |
| assertTrue(info.getPrefetchPolicy() instanceof JmsDefaultPrefetchPolicy); |
| } |
| |
| @Test |
| public void testGetPresettlePolicyDefaults() { |
| final JmsSessionInfo info = new JmsSessionInfo(firstId); |
| |
| assertNotNull(info.getPresettlePolicy()); |
| info.setPresettlePolicy(null); |
| assertNotNull(info.getPresettlePolicy()); |
| assertTrue(info.getPresettlePolicy() instanceof JmsDefaultPresettlePolicy); |
| } |
| |
| @Test |
| public void testGetRedeliveryPolicyDefaults() { |
| final JmsSessionInfo info = new JmsSessionInfo(firstId); |
| |
| assertNotNull(info.getRedeliveryPolicy()); |
| info.setRedeliveryPolicy(null); |
| assertNotNull(info.getRedeliveryPolicy()); |
| assertTrue(info.getRedeliveryPolicy() instanceof JmsDefaultRedeliveryPolicy); |
| } |
| } |