Add test for the TopicConnection implementation JmsTopicConnection to
validate that the Queue based methods throw
javax.jms.IllegalStateException.

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

Branch: refs/heads/master
Commit: 97503ca67cb76ef34aa0f32a5a854188077da3a1
Parents: 045e521
Author: Timothy Bish <[email protected]>
Authored: Tue Jan 13 17:03:57 2015 -0500
Committer: Timothy Bish <[email protected]>
Committed: Tue Jan 13 17:03:57 2015 -0500

----------------------------------------------------------------------
 .../apache/qpid/jms/JmsQueueConnectionTest.java |   4 +-
 .../apache/qpid/jms/JmsTopicConnectionTest.java | 125 +++++++++++++++++++
 2 files changed, 127 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97503ca6/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsQueueConnectionTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsQueueConnectionTest.java 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsQueueConnectionTest.java
index 0f4b991..71bc1be 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsQueueConnectionTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsQueueConnectionTest.java
@@ -56,7 +56,7 @@ public class JmsQueueConnectionTest {
             @Override
             public Object answer(InvocationOnMock invocation) throws Throwable 
{
                 Object[] args = invocation.getArguments();
-                LOG.debug("Handling provider create call for resource: {}", 
args[0]);
+                LOG.trace("Handling provider create call for resource: {}", 
args[0]);
                 ProviderFuture request = (ProviderFuture) args[1];
                 request.onSuccess();
                 return null;
@@ -67,7 +67,7 @@ public class JmsQueueConnectionTest {
             @Override
             public Object answer(InvocationOnMock invocation) throws Throwable 
{
                 Object[] args = invocation.getArguments();
-                LOG.debug("Handling provider destroy call");
+                LOG.trace("Handling provider destroy call");
                 ProviderFuture request = (ProviderFuture) args[1];
                 request.onSuccess();
                 return null;

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/97503ca6/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTopicConnectionTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTopicConnectionTest.java 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTopicConnectionTest.java
new file mode 100644
index 0000000..7eabde5
--- /dev/null
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/JmsTopicConnectionTest.java
@@ -0,0 +1,125 @@
+/**
+ * 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 javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+import javax.jms.Session;
+import javax.jms.TopicSession;
+
+import org.apache.qpid.jms.meta.JmsResource;
+import org.apache.qpid.jms.provider.Provider;
+import org.apache.qpid.jms.provider.ProviderFuture;
+import org.apache.qpid.jms.util.IdGenerator;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Test various contract aspects of the TopicConnection implementation
+ */
+public class JmsTopicConnectionTest {
+
+    private static final Logger LOG = 
LoggerFactory.getLogger(JmsTopicConnectionTest.class);
+
+    private final Provider provider = Mockito.mock(Provider.class);
+    private final IdGenerator clientIdGenerator = new IdGenerator();
+
+    private JmsTopicConnection topicConnection;
+    private TopicSession topicSession;
+    private final JmsQueue queue = new JmsQueue();
+
+    @Before
+    public void setUp() throws Exception {
+
+        Mockito.doAnswer(new Answer<Object>() {
+            @Override
+            public Object answer(InvocationOnMock invocation) throws Throwable 
{
+                Object[] args = invocation.getArguments();
+                LOG.trace("Handling provider create call for resource: {}", 
args[0]);
+                ProviderFuture request = (ProviderFuture) args[1];
+                request.onSuccess();
+                return null;
+            }
+        }).when(provider).create(Mockito.any(JmsResource.class), 
Mockito.any(ProviderFuture.class));
+
+        Mockito.doAnswer(new Answer<Object>() {
+            @Override
+            public Object answer(InvocationOnMock invocation) throws Throwable 
{
+                Object[] args = invocation.getArguments();
+                LOG.trace("Handling provider destroy call");
+                ProviderFuture request = (ProviderFuture) args[1];
+                request.onSuccess();
+                return null;
+            }
+        }).when(provider).destroy(Mockito.any(JmsResource.class), 
Mockito.any(ProviderFuture.class));
+
+        topicConnection = new JmsTopicConnection("ID:TEST:1", provider, 
clientIdGenerator);
+        topicConnection.start();
+
+        topicSession = topicConnection.createTopicSession(false, 
Session.AUTO_ACKNOWLEDGE);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        topicConnection.close();
+    }
+
+    /**
+     * Test that a call to <code>createBrowser()</code> method
+     * on a <code>TopicSession</code> throws a
+     * <code>javax.jms.IllegalStateException</code>.
+     * (see JMS 1.1 specs, table 4-1).
+     *
+     * @since JMS 1.1
+     */
+    @Test(timeout = 30000, expected=IllegalStateException.class)
+    public void testCreateBrowserOnTopicSession() throws JMSException {
+        topicSession.createBrowser(queue);
+    }
+
+    /**
+     * Test that a call to <code>createQueue()</code> method
+     * on a <code>TopicSession</code> throws a
+     * <code>javax.jms.IllegalStateException</code>.
+     * (see JMS 1.1 specs, table 4-1).
+     *
+     * @since JMS 1.1
+     */
+    @Test(timeout = 30000, expected=IllegalStateException.class)
+    public void testCreateQueueOnTopicSession() throws JMSException {
+        topicSession.createQueue("test-queue");
+    }
+
+    /**
+     * Test that a call to <code>createTemporaryQueue()</code> method
+     * on a <code>TopicSession</code> throws a
+     * <code>javax.jms.IllegalStateException</code>.
+     * (see JMS 1.1 specs, table 4-1).
+     *
+     * @since JMS 1.1
+     */
+    @Test(timeout = 30000, expected=IllegalStateException.class)
+    public void testCreateTemporaryQueueOnTopicSession() throws JMSException {
+        topicSession.createTemporaryQueue();
+    }
+}
\ No newline at end of file


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

Reply via email to