You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/11/30 17:20:36 UTC

qpid-broker-j git commit: QPID-6933: [System Tests] Move TemporaryTopicTest into JMS 1.1 system tests

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 7e6e56eb9 -> ad2e6a5e6


QPID-6933: [System Tests] Move TemporaryTopicTest into JMS 1.1 system tests


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/ad2e6a5e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/ad2e6a5e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/ad2e6a5e

Branch: refs/heads/master
Commit: ad2e6a5e6f76399ea6c9bda61d386ad6b3631e33
Parents: 7e6e56e
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Nov 30 17:20:04 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Thu Nov 30 17:20:04 2017 +0000

----------------------------------------------------------------------
 .../jms_1_1/topic/TemporaryTopicTest.java       | 179 ++++++++++++++++++
 .../test/unit/topic/TemporaryTopicTest.java     | 181 -------------------
 test-profiles/Java10BrokenTestsExcludes         |   3 -
 3 files changed, 179 insertions(+), 184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/ad2e6a5e/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/topic/TemporaryTopicTest.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/topic/TemporaryTopicTest.java b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/topic/TemporaryTopicTest.java
new file mode 100644
index 0000000..83e0bfa
--- /dev/null
+++ b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/topic/TemporaryTopicTest.java
@@ -0,0 +1,179 @@
+/*
+ *
+ * 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.systests.jms_1_1.topic;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.TemporaryTopic;
+import javax.jms.TextMessage;
+
+import org.junit.Test;
+
+import org.apache.qpid.systests.JmsTestBase;
+
+public class TemporaryTopicTest extends JmsTestBase
+{
+
+    @Test
+    public void testMessageDeliveryUsingTemporaryTopic() throws Exception
+    {
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final TemporaryTopic topic = session.createTemporaryTopic();
+            assertNotNull("Temporary topic is null", topic);
+            final MessageProducer producer = session.createProducer(topic);
+            final MessageConsumer consumer1 = session.createConsumer(topic);
+            final MessageConsumer consumer2 = session.createConsumer(topic);
+            connection.start();
+            producer.send(session.createTextMessage("hello"));
+
+            final TextMessage tm1 = (TextMessage) consumer1.receive(getReceiveTimeout());
+            final TextMessage tm2 = (TextMessage) consumer2.receive(getReceiveTimeout());
+
+            assertNotNull("Message not received by subscriber1", tm1);
+            assertEquals("hello", tm1.getText());
+            assertNotNull("Message not received by subscriber2", tm2);
+            assertEquals("hello", tm2.getText());
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Test
+    public void testExplicitTemporaryTopicDeletion() throws Exception
+    {
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final TemporaryTopic topic = session.createTemporaryTopic();
+            assertNotNull("Temporary topic is null", topic);
+            final MessageConsumer consumer = session.createConsumer(topic);
+            connection.start();
+            try
+            {
+                topic.delete();
+                fail("Expected JMSException : should not be able to delete while there are active consumers");
+            }
+            catch (JMSException je)
+            {
+                //pass
+            }
+
+            consumer.close();
+
+            // Now deletion should succeed.
+            topic.delete();
+
+            try
+            {
+                session.createConsumer(topic);
+                fail("Exception not thrown");
+            }
+            catch (JMSException je)
+            {
+                //pass
+            }
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Test
+    public void testUseFromAnotherConnectionProhibited() throws Exception
+    {
+        final Connection connection = getConnection();
+        try
+        {
+            final Connection connection2 = getConnection();
+            try
+            {
+                final Session session1 = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                final Session session2 = connection2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                final TemporaryTopic topic = session1.createTemporaryTopic();
+
+                try
+                {
+                    session2.createConsumer(topic);
+                    fail("Expected a JMSException when subscribing to a temporary topic created on a different connection");
+                }
+                catch (JMSException je)
+                {
+                    // pass
+                }
+            }
+            finally
+            {
+                connection2.close();
+            }
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Test
+    public void testTemporaryTopicReused() throws Exception
+    {
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final TemporaryTopic topic = session.createTemporaryTopic();
+            assertNotNull("Temporary topic is null", topic);
+
+            final MessageProducer producer = session.createProducer(topic);
+            final MessageConsumer consumer1 = session.createConsumer(topic);
+            connection.start();
+            producer.send(session.createTextMessage("message1"));
+            TextMessage tm = (TextMessage) consumer1.receive(getReceiveTimeout());
+            assertNotNull("Message not received by first consumer", tm);
+            assertEquals("message1", tm.getText());
+            consumer1.close();
+
+            final MessageConsumer consumer2 = session.createConsumer(topic);
+            connection.start();
+            producer.send(session.createTextMessage("message2"));
+            tm = (TextMessage) consumer2.receive(getReceiveTimeout());
+            assertNotNull("Message not received by second consumer", tm);
+            assertEquals("message2", tm.getText());
+            consumer2.close();
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/ad2e6a5e/systests/src/test/java/org/apache/qpid/test/unit/topic/TemporaryTopicTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/test/unit/topic/TemporaryTopicTest.java b/systests/src/test/java/org/apache/qpid/test/unit/topic/TemporaryTopicTest.java
deleted file mode 100644
index ed4a390..0000000
--- a/systests/src/test/java/org/apache/qpid/test/unit/topic/TemporaryTopicTest.java
+++ /dev/null
@@ -1,181 +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.test.unit.topic;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-import javax.jms.TemporaryTopic;
-import javax.jms.TextMessage;
-
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-
-
-/**
- * Tests the behaviour of {@link TemporaryTopic}.
- */
-public class TemporaryTopicTest extends QpidBrokerTestCase
-{
-    /**
-     * Tests the basic publish/subscribe behaviour of a temporary topic. Single
-     * message is sent to two subscribers.
-     */
-    public void testMessageDeliveryUsingTemporaryTopic() throws Exception
-    {
-        final Connection conn = getConnection();
-        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-        final MessageProducer producer = session.createProducer(topic);
-        final MessageConsumer consumer1 = session.createConsumer(topic);
-        final MessageConsumer consumer2 = session.createConsumer(topic);
-        conn.start();
-        producer.send(session.createTextMessage("hello"));
-
-        final TextMessage tm1 = (TextMessage) consumer1.receive(getReceiveTimeout());
-        final TextMessage tm2 = (TextMessage) consumer2.receive(getReceiveTimeout());
-
-        assertNotNull("Message not received by subscriber1", tm1);
-        assertEquals("hello", tm1.getText());
-        assertNotNull("Message not received by subscriber2", tm2);
-        assertEquals("hello", tm2.getText());
-    }
-
-    /**
-     * Tests that the client is able to explicitly delete a temporary topic using
-     * {@link TemporaryTopic#delete()} and is prevented from deleting one that
-     * still has consumers.
-     *
-     * Note: Under < 0-10 {@link TemporaryTopic#delete()} only marks the queue as deleted
-     * on the client. 0-10 causes the topic to be deleted from the Broker.
-     */
-    public void testExplicitTemporaryTopicDeletion() throws Exception
-    {
-        final Connection conn = getConnection();
-
-        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-        final MessageConsumer consumer = session.createConsumer(topic);
-        conn.start();
-        try
-        {
-            topic.delete();
-            fail("Expected JMSException : should not be able to delete while there are active consumers");
-        }
-        catch (JMSException je)
-        {
-            //pass
-        }
-
-        consumer.close();
-
-        // Now deletion should succeed.
-        topic.delete();
-
-        try
-        {
-            session.createConsumer(topic);
-            fail("Exception not thrown");
-        }
-        catch (JMSException je)
-        {
-            //pass
-        }
-    }
-
-    /**
-     * Tests that a temporary topic cannot be used by another {@link Connection}.
-     */
-    public void testUseFromAnotherConnectionProhibited() throws Exception
-    {
-        final Connection conn = getConnection();
-        final Connection conn2 = getConnection();
-        final Session session1 = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final Session session2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final TemporaryTopic topic = session1.createTemporaryTopic();
-
-        try
-        {
-            session2.createConsumer(topic);
-            fail("Expected a JMSException when subscribing to a temporary topic created on a different connection");
-        }
-        catch (JMSException je)
-        {
-            // pass
-
-        }
-    }
-
-    /**
-     * Tests that the client is prohibited from creating a durable subscriber for a temporary
-     * queue.
-     */
-    public void testDurableSubscriptionProhibited() throws Exception
-    {
-        final Connection conn = getConnection();
-
-        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-        try
-        {
-            session.createDurableSubscriber(topic, null);
-            fail("Expected JMSException : should not be able to create durable subscription from temp topic");
-        }
-        catch (JMSException je)
-        {
-            //pass
-            assertEquals("Cannot create a durable subscription with a temporary topic: " + topic.toString(), je.getMessage());
-        }
-    }
-
-    /**
-     * Tests that a temporary topic remains available for reuse even after its initial
-     * subscribers have disconnected.
-     */
-    public void testTemporaryTopicReused() throws Exception
-    {
-        final Connection conn = getConnection();
-        final Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        final TemporaryTopic topic = session.createTemporaryTopic();
-        assertNotNull(topic);
-
-        final MessageProducer producer = session.createProducer(topic);
-        final MessageConsumer consumer1 = session.createConsumer(topic);
-        conn.start();
-        producer.send(session.createTextMessage("message1"));
-        TextMessage tm = (TextMessage) consumer1.receive(getReceiveTimeout());
-        assertNotNull("Message not received by first consumer", tm);
-        assertEquals("message1", tm.getText());
-        consumer1.close();
-
-        final MessageConsumer consumer2 = session.createConsumer(topic);
-        conn.start();
-        producer.send(session.createTextMessage("message2"));
-        tm = (TextMessage) consumer2.receive(getReceiveTimeout());
-        assertNotNull("Message not received by second consumer", tm);
-        assertEquals("message2", tm.getText());
-        consumer2.close();
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/ad2e6a5e/test-profiles/Java10BrokenTestsExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/Java10BrokenTestsExcludes b/test-profiles/Java10BrokenTestsExcludes
index cbd917c..a47db57 100644
--- a/test-profiles/Java10BrokenTestsExcludes
+++ b/test-profiles/Java10BrokenTestsExcludes
@@ -52,9 +52,6 @@ org.apache.qpid.test.unit.client.QueueSessionFactoryTest#testQueueSessionIsNotAT
 org.apache.qpid.test.unit.client.TopicSessionFactoryTest#testTopicSessionIsNotAQueueSession
 org.apache.qpid.test.unit.client.QueueSessionFactoryTest#testTopicSessionCannotCreateCreateBrowser
 
-
-// The test tests something not required by the spec (see JMS 2.0 section 4.2.7). The new JMS client does not enforce this.
-org.apache.qpid.test.unit.topic.TemporaryTopicTest#testDurableSubscriptionProhibited
 // Test uses AMQP 0-x ack modes and assumes the name of the queues backing subscriptions
 org.apache.qpid.test.unit.topic.DurableSubscriptionTest#*
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org