diff options
| author | Robert Gemmell <robbie@apache.org> | 2009-07-21 09:05:21 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2009-07-21 09:05:21 +0000 |
| commit | f0e6f01dde506470ac60c7ec37bb09ad1bf0b08a (patch) | |
| tree | 476b42bea25713263ece67ed29125fcb06eed093 /java/broker/src/test | |
| parent | c46a857d27ba2dcb4026e73d998d5c800fa4b807 (diff) | |
| download | qpid-python-f0e6f01dde506470ac60c7ec37bb09ad1bf0b08a.tar.gz | |
QPID-1961: expand viewMessages() queue operation to support long parameters, deprecate previous int version.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@796196 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src/test')
3 files changed, 83 insertions, 3 deletions
diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java index ce986cf55b..80a9275954 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java @@ -187,7 +187,7 @@ public class AMQQueueMBeanTest extends TestCase { try { - _queueMBean.viewMessages(0, 3); + _queueMBean.viewMessages(0L, 3L); fail(); } catch (JMException ex) @@ -197,7 +197,7 @@ public class AMQQueueMBeanTest extends TestCase try { - _queueMBean.viewMessages(2, 1); + _queueMBean.viewMessages(2L, 1L); fail(); } catch (JMException ex) @@ -207,13 +207,25 @@ public class AMQQueueMBeanTest extends TestCase try { - _queueMBean.viewMessages(-1, 1); + _queueMBean.viewMessages(-1L, 1L); fail(); } catch (JMException ex) { } + + try + { + long end = Integer.MAX_VALUE; + end+=2; + _queueMBean.viewMessages(1L, end); + fail("Expected Exception due to oversized(> 2^31) message range"); + } + catch (JMException ex) + { + + } IncomingMessage msg = message(false, false); long id = msg.getMessageId(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java index 20503bf15c..f73366c197 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java @@ -209,6 +209,11 @@ public class MockAMQQueue implements AMQQueue { return null; //To change body of implemented methods use File | Settings | File Templates. } + + public List<QueueEntry> getMessagesRangeOnTheQueue(long fromPosition, long toPosition) + { + return null; + } public void moveMessagesToAnotherQueue(long fromMessageId, long toMessageId, String queueName, StoreContext storeContext) { diff --git a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java index 3084dc7fa1..1c11a7926d 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java @@ -335,6 +335,69 @@ public class SimpleAMQQueueTest extends TestCase assertEquals("Message ID was wrong", messageId, msgids.get(i)); } } + + public void testGetMessagesRangeOnTheQueue() throws Exception + { + for (int i = 1 ; i <= 10; i++) + { + // Create message + Long messageId = new Long(i); + AMQMessage message = createMessage(messageId); + // Put message on queue + _queue.enqueue(null, message); + } + + // Get non-existent 0th QueueEntry & check returned list was empty + // (the position parameters in this method are indexed from 1) + List<QueueEntry> entries = _queue.getMessagesRangeOnTheQueue(0, 0); + assertTrue(entries.size() == 0); + + // Check that when 'from' is 0 it is ignored and the range continues from 1 + entries = _queue.getMessagesRangeOnTheQueue(0, 2); + assertTrue(entries.size() == 2); + long msgID = entries.get(0).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 1L); + msgID = entries.get(1).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 2L); + + // Check that when 'from' is greater than 'to' the returned list is empty + entries = _queue.getMessagesRangeOnTheQueue(5, 4); + assertTrue(entries.size() == 0); + + // Get first QueueEntry & check id + entries = _queue.getMessagesRangeOnTheQueue(1, 1); + assertTrue(entries.size() == 1); + msgID = entries.get(0).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 1L); + + // Get 5th,6th,7th entries and check id's + entries = _queue.getMessagesRangeOnTheQueue(5, 7); + assertTrue(entries.size() == 3); + msgID = entries.get(0).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 5L); + msgID = entries.get(1).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 6L); + msgID = entries.get(2).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 7L); + + // Get 10th QueueEntry & check id + entries = _queue.getMessagesRangeOnTheQueue(10, 10); + assertTrue(entries.size() == 1); + msgID = entries.get(0).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 10L); + + // Get non-existent 11th QueueEntry & check returned set was empty + entries = _queue.getMessagesRangeOnTheQueue(11, 11); + assertTrue(entries.size() == 0); + + // Get 9th,10th, and non-existent 11th entries & check result is of size 2 with correct IDs + entries = _queue.getMessagesRangeOnTheQueue(9, 11); + assertTrue(entries.size() == 2); + msgID = entries.get(0).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 9L); + msgID = entries.get(1).getMessage().getMessageId(); + assertEquals("Message ID was wrong", msgID, 10L); + } public void testEnqueueDequeueOfPersistentMessageToNonDurableQueue() throws AMQException { |
