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/12/28 12:23:42 UTC

qpid-broker-j git commit: QPID-6933: [System Tests] Refactor arrival time filter tests as JMS 1.1 system test

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master f96d50b9f -> 557109a04


QPID-6933: [System Tests] Refactor arrival time filter tests as JMS 1.1 system test


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/557109a0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/557109a0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/557109a0

Branch: refs/heads/master
Commit: 557109a04752a3ddb6d6c980d82ff5a04f07ee16
Parents: f96d50b
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Dec 28 12:22:59 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Thu Dec 28 12:22:59 2017 +0000

----------------------------------------------------------------------
 .../org/apache/qpid/systests/JmsTestBase.java   |   5 +
 .../filters/ArrivalTimeFilterTest.java          | 205 +++++++++++++++++++
 .../server/queue/ArrivalTimeFilterTest.java     | 107 ----------
 test-profiles/CPPExcludes                       |   1 -
 test-profiles/Java10BrokenTestsExcludes         |   2 -
 5 files changed, 210 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/557109a0/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/JmsTestBase.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/JmsTestBase.java b/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/JmsTestBase.java
index 8461664..09177f5 100644
--- a/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/JmsTestBase.java
+++ b/systests/qpid-systests-jms-core/src/main/java/org/apache/qpid/systests/JmsTestBase.java
@@ -134,6 +134,11 @@ public abstract class JmsTestBase extends BrokerAdminUsingTestBase
         return _testName.getMethodName();
     }
 
+    protected Queue getQueue(String queueName) throws Exception
+    {
+        return _jmsProvider.getTestQueue(queueName);
+    }
+
     protected Topic createTopic(final String topicName) throws Exception
     {
         Connection connection = getConnection();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/557109a0/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/filters/ArrivalTimeFilterTest.java
----------------------------------------------------------------------
diff --git a/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/filters/ArrivalTimeFilterTest.java b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/filters/ArrivalTimeFilterTest.java
new file mode 100644
index 0000000..165a298
--- /dev/null
+++ b/systests/qpid-systests-jms_1.1/src/test/java/org/apache/qpid/systests/jms_1_1/extensions/filters/ArrivalTimeFilterTest.java
@@ -0,0 +1,205 @@
+/*
+ *
+ * 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.extensions.filters;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeThat;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jms.Connection;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+import org.apache.qpid.server.model.Protocol;
+import org.apache.qpid.systests.JmsTestBase;
+
+public class ArrivalTimeFilterTest extends JmsTestBase
+{
+    private static final String LEGACY_BINDING_URL = "direct://amq.direct/%s/%s?x-qpid-replay-period='%d'";
+
+    @Test
+    public void testQueueDefaultFilterArrivalTime0() throws Exception
+    {
+        final String queueName = getTestName();
+        createDestinationWithFilter(0, queueName);
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final Queue queue = getQueue(queueName);
+            final MessageProducer producer = session.createProducer(queue);
+            producer.send(session.createTextMessage("A"));
+
+            final MessageConsumer consumer = session.createConsumer(queue);
+            connection.start();
+
+            producer.send(session.createTextMessage("B"));
+
+            final Message receivedMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message should be received", receivedMessage);
+            assertTrue("Unexpected message type", receivedMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "B", ((TextMessage) receivedMessage).getText());
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Ignore("QPID-8067")
+    @Test
+    public void testQueueDefaultFilterArrivalTime1000() throws Exception
+    {
+        final String queueName = getTestName();
+        final long period = getReceiveTimeout() / 1000;
+        createDestinationWithFilter(period, queueName);
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final Queue queue = getQueue(queueName);
+            connection.start();
+            final MessageProducer producer = session.createProducer(queue);
+            producer.send(session.createTextMessage("A"));
+
+            Thread.sleep(getReceiveTimeout() / 4);
+
+            final MessageConsumer consumer = session.createConsumer(queue);
+
+            final Message receivedMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message A should be received", receivedMessage);
+            assertTrue("Unexpected message type", receivedMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "A", ((TextMessage) receivedMessage).getText());
+
+            producer.send(session.createTextMessage("B"));
+
+            final Message secondMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message B should be received", secondMessage);
+            assertTrue("Unexpected message type", secondMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "B", ((TextMessage) secondMessage).getText());
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Test
+    public void testConsumerFilterArrivalTime0() throws Exception
+    {
+        assumeThat("Only legacy client implements this feature", getProtocol(), is(not(equalTo(Protocol.AMQP_1_0))));
+
+        final String queueName = getTestName();
+        createQueue(queueName);
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final Queue queue = session.createQueue(String.format(LEGACY_BINDING_URL, queueName, queueName, 0));
+            final MessageProducer producer = session.createProducer(queue);
+            producer.send(session.createTextMessage("A"));
+
+            final MessageConsumer consumer = session.createConsumer(queue);
+            connection.start();
+
+            producer.send(session.createTextMessage("B"));
+
+            final Message receivedMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message should be received", receivedMessage);
+            assertTrue("Unexpected message type", receivedMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "B", ((TextMessage) receivedMessage).getText());
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    @Test
+    public void testConsumerFilterArrivalTime1000() throws Exception
+    {
+        assumeThat("Only legacy client implements this feature", getProtocol(), is(not(equalTo(Protocol.AMQP_1_0))));
+
+        final String queueName = getTestName();
+        createQueue(queueName);
+        final Connection connection = getConnection();
+        try
+        {
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            final Queue queue =
+                    session.createQueue(String.format(LEGACY_BINDING_URL, queueName, queueName, getReceiveTimeout()));
+            connection.start();
+            final MessageProducer producer = session.createProducer(queue);
+            producer.send(session.createTextMessage("A"));
+
+            Thread.sleep(getReceiveTimeout() / 4);
+
+            final MessageConsumer consumer = session.createConsumer(queue);
+
+            final Message receivedMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message A should be received", receivedMessage);
+            assertTrue("Unexpected message type", receivedMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "A", ((TextMessage) receivedMessage).getText());
+
+            producer.send(session.createTextMessage("B"));
+
+            final Message secondMessage = consumer.receive(getReceiveTimeout());
+            assertNotNull("Message B should be received", secondMessage);
+            assertTrue("Unexpected message type", secondMessage instanceof TextMessage);
+            assertEquals("Unexpected message", "B", ((TextMessage) secondMessage).getText());
+        }
+        finally
+        {
+            connection.close();
+        }
+    }
+
+    private void createDestinationWithFilter(final long period, final String queueName) throws Exception
+    {
+        createEntityUsingAmqpManagement(queueName, "org.apache.qpid.Queue",
+                                        Collections.singletonMap("defaultFilters",
+                                                                 "{ \"x-qpid-replay-period\" : { \"x-qpid-replay-period\" : [ \""
+                                                                 + period
+                                                                 + "\" ] } }"));
+        final Map<String, Object> arguments = new HashMap<>();
+        arguments.put("destination", queueName);
+        arguments.put("bindingKey", queueName);
+        performOperationUsingAmqpManagement("amq.direct",
+                                            "bind",
+                                            "org.apache.qpid.Exchange",
+                                            arguments);
+    }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/557109a0/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java b/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java
deleted file mode 100644
index 6931775..0000000
--- a/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java
+++ /dev/null
@@ -1,107 +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.server.queue;
-
-import javax.jms.Connection;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Queue;
-import javax.jms.Session;
-import javax.jms.TextMessage;
-
-import org.apache.qpid.QpidException;
-import org.apache.qpid.client.AMQDestination;
-import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.test.utils.QpidBrokerTestCase;
-
-public class ArrivalTimeFilterTest extends QpidBrokerTestCase
-{
-
-    private String _queueName;
-    private Connection _connection;
-    private Session _session;
-    private Queue _queue;
-
-    @Override
-    public void setUp() throws Exception
-    {
-        super.setUp();
-
-        _queueName = getTestQueueName();
-        _connection = getConnection();
-        _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        _connection.start();
-    }
-
-
-    public void testArrivalTime0() throws QpidException, JMSException, InterruptedException
-    {
-        createDestinationWithFilter(0);
-        final MessageProducer prod = _session.createProducer(_queue);
-        TextMessage textMessage = _session.createTextMessage("hello");
-        prod.send(textMessage);
-
-        Thread.sleep(100);
-
-        MessageConsumer cons = _session.createConsumer(_queue);
-
-        assertNull("Message should not be received", cons.receive(500));
-
-        textMessage = _session.createTextMessage("hello");
-        prod.send( textMessage);
-
-        Message receivedMsg = cons.receive(500);
-        assertNotNull("Message should be received", receivedMsg);
-    }
-
-
-    public void testArrivalTime1000() throws QpidException, JMSException, InterruptedException
-    {
-        createDestinationWithFilter(1000);
-        final MessageProducer prod = _session.createProducer(_queue);
-        TextMessage textMessage = _session.createTextMessage("hello");
-        prod.send(textMessage);
-
-        Thread.sleep(100);
-
-        MessageConsumer cons = _session.createConsumer(_queue);
-
-        assertNotNull("Message should be received", cons.receive(500));
-
-        textMessage = _session.createTextMessage("hello");
-        prod.send( textMessage);
-
-        Message receivedMsg = cons.receive(500);
-        assertNotNull("Message should be received", receivedMsg);
-    }
-
-    private void createDestinationWithFilter(final int period) throws QpidException, JMSException
-    {
-        ((AMQSession<?,?>) _session).createQueue(_queueName, false, true, false, null);
-        Queue queue = new org.apache.qpid.client.AMQQueue("amq.direct", _queueName);
-        ((AMQSession<?,?>) _session).declareAndBind((AMQDestination)queue);
-        _queue = _session.createQueue("direct://amq.direct/"+_queueName+"/"+_queueName+"?x-qpid-replay-period='"+period+"'");
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/557109a0/test-profiles/CPPExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/CPPExcludes b/test-profiles/CPPExcludes
index 0c493d4..d1637c2 100755
--- a/test-profiles/CPPExcludes
+++ b/test-profiles/CPPExcludes
@@ -167,7 +167,6 @@ org.apache.qpid.systest.MessageCompressionTest#*
 
 org.apache.qpid.test.unit.client.AMQSessionTest#testQueueDepthForQueueThatDoesNotExistLegacyBehaviour_08_091
 
-org.apache.qpid.server.queue.ArrivalTimeFilterTest#*
 org.apache.qpid.server.queue.EnsureNondestructiveConsumersTest#*
 org.apache.qpid.server.protocol.v0_8.*
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/557109a0/test-profiles/Java10BrokenTestsExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/Java10BrokenTestsExcludes b/test-profiles/Java10BrokenTestsExcludes
index 0831810..33a3cd6 100644
--- a/test-profiles/Java10BrokenTestsExcludes
+++ b/test-profiles/Java10BrokenTestsExcludes
@@ -44,5 +44,3 @@ org.apache.qpid.test.unit.topic.DurableSubscriptionTest#*
 
 // These tests require some way to set properties on the link established by the client
 org.apache.qpid.server.queue.ConsumerPriorityTest#*
-org.apache.qpid.server.queue.ArrivalTimeFilterTest#*
-


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