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