You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2014/10/07 23:15:36 UTC

git commit: Additional tests for dequeue

Repository: qpid-jms
Updated Branches:
  refs/heads/master e5fbb3b27 -> cbded4573


Additional tests for dequeue

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

Branch: refs/heads/master
Commit: cbded4573339e004a35e9f979a5a3b8eeac8a7de
Parents: e5fbb3b
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Oct 7 17:12:03 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Oct 7 17:12:03 2014 -0400

----------------------------------------------------------------------
 .../qpid/jms/util/PriorityMessageQueueTest.java | 67 ++++++++++++++++++++
 1 file changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/cbded457/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
index ee0b4b9..e0fee32 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/util/PriorityMessageQueueTest.java
@@ -98,6 +98,28 @@ public class PriorityMessageQueueTest {
     }
 
     @Test
+    public void testDequeueWhenQueueIsNotEmpty() throws InterruptedException {
+        JmsInboundMessageDispatch message = createEnvelope();
+        queue.enqueueFirst(message);
+        assertFalse(queue.isEmpty());
+        assertSame(message, queue.dequeue(1L));
+    }
+
+    @Test
+    public void testDequeueZeroWhenQueueIsNotEmpty() throws InterruptedException {
+        JmsInboundMessageDispatch message = createEnvelope();
+        queue.enqueueFirst(message);
+        assertFalse(queue.isEmpty());
+        assertSame(message, queue.dequeue(0));
+    }
+
+    @Test
+    public void testDequeueZeroWhenQueueIsEmpty() throws InterruptedException {
+        assertTrue(queue.isEmpty());
+        assertSame(null, queue.dequeue(0));
+    }
+
+    @Test
     public void testDequeueWhenQueueIsStopped() throws InterruptedException {
         JmsInboundMessageDispatch message = createEnvelope();
         queue.enqueueFirst(message);
@@ -271,6 +293,51 @@ public class PriorityMessageQueueTest {
         assertSame(message, queue.dequeue(-1));
     }
 
+    @Test
+    public void testDequeueTimedWaitsUntilMessageArrives() throws InterruptedException {
+        final JmsInboundMessageDispatch message = createEnvelope();
+        Thread runner = new Thread(new Runnable() {
+
+            @Override
+            public void run() {
+                try {
+                    TimeUnit.SECONDS.sleep(2);
+                } catch (InterruptedException e) {
+                }
+                queue.enqueueFirst(message);
+            }
+        });
+        runner.start();
+
+        assertSame(message, queue.dequeue(10000));
+    }
+
+    @Test
+    public void testDequeueWaitsUntilMessageArrivesWhenLockNotified() throws InterruptedException {
+        final JmsInboundMessageDispatch message = createEnvelope();
+        Thread runner = new Thread(new Runnable() {
+
+            @Override
+            public void run() {
+                try {
+                    TimeUnit.SECONDS.sleep(2);
+                } catch (InterruptedException e) {
+                }
+                synchronized (queue.getLock()) {
+                    queue.getLock().notify();
+                }
+                try {
+                    TimeUnit.SECONDS.sleep(1);
+                } catch (InterruptedException e) {
+                }
+                queue.enqueueFirst(message);
+            }
+        });
+        runner.start();
+
+        assertSame(message, queue.dequeue(-1));
+    }
+
     private List<JmsInboundMessageDispatch> createFullRangePrioritySet() {
         List<JmsInboundMessageDispatch> messages = new ArrayList<JmsInboundMessageDispatch>();
         for (int i = 0; i < 10; ++i) {


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