| /* |
| * 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.session; |
| |
| import static org.junit.Assert.assertNotNull; |
| |
| import javax.jms.IllegalStateException; |
| import javax.jms.JMSException; |
| import javax.jms.QueueSession; |
| import javax.jms.Session; |
| |
| import org.apache.qpid.jms.JmsConnectionTestSupport; |
| import org.apache.qpid.jms.JmsQueue; |
| import org.apache.qpid.jms.JmsQueueSession; |
| import org.apache.qpid.jms.JmsTopic; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * Test the contract of JmsQueueSession against JMS Spec requirements. |
| */ |
| public class JmsQueueSessionTest extends JmsConnectionTestSupport { |
| |
| private QueueSession queueSession; |
| private final JmsTopic topic = new JmsTopic(); |
| private final JmsQueue queue = new JmsQueue(); |
| |
| @Override |
| @Before |
| public void setUp() throws Exception { |
| super.setUp(); |
| queueConnection = createQueueConnectionToMockProvider(); |
| queueConnection.start(); |
| |
| queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateConsumerToTopic() throws JMSException { |
| queueSession.createConsumer(topic); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateReceiver() throws JMSException { |
| assertNotNull(queueSession.createReceiver(queue)); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateReceiverWithSelector() throws JMSException { |
| assertNotNull(queueSession.createReceiver(queue, "color = red")); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateConsumerToQueue() throws JMSException { |
| assertNotNull(queueSession.createConsumer(queue)); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateConsumerWithSelector() throws JMSException { |
| queueSession.createConsumer(topic, "color = red"); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateConsumerToQueueWithSelector() throws JMSException { |
| assertNotNull(queueSession.createConsumer(queue, "color = red")); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateConsumerWithSelectorNoLocal() throws JMSException { |
| queueSession.createConsumer(topic, "color = red", false); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateConsumerToQueueWithSelectorNoLocal() throws JMSException { |
| assertNotNull(queueSession.createConsumer(queue, "color = red", false)); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSubscriber() throws JMSException { |
| ((JmsQueueSession) queueSession).createSubscriber(topic); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSubscriberSelector() throws JMSException { |
| ((JmsQueueSession) queueSession).createSubscriber(topic, "color = red", false); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateProducerToTopic() throws JMSException { |
| queueSession.createProducer(topic); |
| } |
| |
| @Test(timeout = 30000) |
| public void testCreateProducerToQueue() throws JMSException { |
| assertNotNull(queueSession.createProducer(queue)); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateTopicPublisher() throws JMSException { |
| ((JmsQueueSession) queueSession).createPublisher(topic); |
| } |
| |
| /** |
| * Test that a call to <code>createDurableSubscriber()</code> method |
| * on a <code>QueueSession</code> throws a |
| * <code>javax.jms.IllegalStateException</code>. |
| * (see JMS 1.1 specs, table 4-1). |
| * |
| * @since JMS 1.1 |
| * |
| * @throws JMSException if an error occurs during the test. |
| */ |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateDurableSubscriberOnQueueSession() throws JMSException { |
| queueSession.createDurableSubscriber(topic, "subscriptionName"); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateDurableSubscriberWithSelectorOnQueueSession() throws JMSException { |
| queueSession.createDurableSubscriber(topic, "subscriptionName", "color = red", false); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateDurableConsumerOnQueueSession() throws JMSException { |
| queueSession.createDurableConsumer(topic, "subscriptionName"); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateDurableConsumerWithSelectorOnQueueSession() throws JMSException { |
| queueSession.createDurableConsumer(topic, "subscriptionName", "color = red", false); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSharedConsumerOnQueueSession() throws JMSException { |
| queueSession.createSharedConsumer(topic, "subscriptionName"); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSharedConsumerWithSelectorOnQueueSession() throws JMSException { |
| queueSession.createSharedConsumer(topic, "subscriptionName", "color = red"); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSharedDurableConsumerOnQueueSession() throws JMSException { |
| queueSession.createSharedDurableConsumer(topic, "subscriptionName"); |
| } |
| |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateSharedDurableConsumerWithSelectorOnQueueSession() throws JMSException { |
| queueSession.createSharedConsumer(topic, "subscriptionName", "color = red"); |
| } |
| |
| /** |
| * Test that a call to <code>createTemporaryTopic()</code> method |
| * on a <code>QueueSession</code> throws a |
| * <code>javax.jms.IllegalStateException</code>. |
| * (see JMS 1.1 specs, table 4-1). |
| * |
| * @since JMS 1.1 |
| * |
| * @throws JMSException if an error occurs during the test. |
| */ |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateTemporaryTopicOnQueueSession() throws JMSException { |
| queueSession.createTemporaryTopic(); |
| } |
| |
| /** |
| * Test that a call to <code>createTopic()</code> method |
| * on a <code>QueueSession</code> throws a |
| * <code>javax.jms.IllegalStateException</code>. |
| * (see JMS 1.1 specs, table 4-1). |
| * |
| * @since JMS 1.1 |
| * |
| * @throws JMSException if an error occurs during the test. |
| */ |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testCreateTopicOnQueueSession() throws JMSException { |
| queueSession.createTopic("test-topic"); |
| } |
| |
| /** |
| * Test that a call to <code>unsubscribe()</code> method |
| * on a <code>QueueSession</code> throws a |
| * <code>javax.jms.IllegalStateException</code>. |
| * (see JMS 1.1 specs, table 4-1). |
| * |
| * @since JMS 1.1 |
| * |
| * @throws JMSException if an error occurs during the test. |
| */ |
| @Test(timeout = 30000, expected=IllegalStateException.class) |
| public void testUnsubscribeOnQueueSession() throws JMSException { |
| queueSession.unsubscribe("subscriptionName"); |
| } |
| } |