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