summaryrefslogtreecommitdiff
path: root/qpid/cpp/broker/test
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2006-10-11 08:24:42 +0000
committerGordon Sim <gsim@apache.org>2006-10-11 08:24:42 +0000
commitdeff1e751c9d0c1baec2d0b7a9e5b88d5668a861 (patch)
treeaa158805ed0f59256228e10e23da780a2057fe10 /qpid/cpp/broker/test
parent2da7f5de1cd0fe638538d11e953bb458852da345 (diff)
downloadqpid-python-deff1e751c9d0c1baec2d0b7a9e5b88d5668a861.tar.gz
Implementation of basic_get.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@462729 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/broker/test')
-rw-r--r--qpid/cpp/broker/test/QueueTest.cpp (renamed from qpid/cpp/broker/test/queue_test.cpp)47
1 files changed, 44 insertions, 3 deletions
diff --git a/qpid/cpp/broker/test/queue_test.cpp b/qpid/cpp/broker/test/QueueTest.cpp
index aa423e7e08..973b1b5cf6 100644
--- a/qpid/cpp/broker/test/queue_test.cpp
+++ b/qpid/cpp/broker/test/QueueTest.cpp
@@ -47,12 +47,14 @@ public:
class QueueTest : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(QueueTest);
- CPPUNIT_TEST(testMe);
+ CPPUNIT_TEST(testConsumers);
+ CPPUNIT_TEST(testBinding);
+ CPPUNIT_TEST(testRegistry);
+ CPPUNIT_TEST(testDequeue);
CPPUNIT_TEST_SUITE_END();
public:
- void testMe()
- {
+ void testConsumers(){
Queue::shared_ptr queue(new Queue("my_queue", true, true));
//Test adding consumers:
@@ -82,7 +84,10 @@ class QueueTest : public CppUnit::TestCase
CPPUNIT_ASSERT_EQUAL(u_int32_t(1), queue->getConsumerCount());
queue->cancel(&c2);
CPPUNIT_ASSERT_EQUAL(u_int32_t(0), queue->getConsumerCount());
+ }
+ void testBinding(){
+ Queue::shared_ptr queue(new Queue("my_queue", true, true));
//Test bindings:
TestBinding a;
TestBinding b;
@@ -93,7 +98,9 @@ class QueueTest : public CppUnit::TestCase
CPPUNIT_ASSERT(a.isCancelled());
CPPUNIT_ASSERT(b.isCancelled());
+ }
+ void testRegistry(){
//Test use of queues in registry:
QueueRegistry registry;
registry.declare("queue1", true, true);
@@ -112,6 +119,40 @@ class QueueTest : public CppUnit::TestCase
CPPUNIT_ASSERT(!registry.find("queue2"));
CPPUNIT_ASSERT(!registry.find("queue3"));
}
+
+ void testDequeue(){
+ Queue::shared_ptr queue(new Queue("my_queue", true, true));
+
+ Message::shared_ptr msg1 = Message::shared_ptr(new Message(0, "e", "A", true, true));
+ Message::shared_ptr msg2 = Message::shared_ptr(new Message(0, "e", "B", true, true));
+ Message::shared_ptr msg3 = Message::shared_ptr(new Message(0, "e", "C", true, true));
+ Message::shared_ptr received;
+
+ queue->deliver(msg1);
+ queue->deliver(msg2);
+ queue->deliver(msg3);
+
+ CPPUNIT_ASSERT_EQUAL(u_int32_t(3), queue->getMessageCount());
+
+ received = queue->dequeue();
+ CPPUNIT_ASSERT_EQUAL(msg1.get(), received.get());
+ CPPUNIT_ASSERT_EQUAL(u_int32_t(2), queue->getMessageCount());
+
+ received = queue->dequeue();
+ CPPUNIT_ASSERT_EQUAL(msg2.get(), received.get());
+ CPPUNIT_ASSERT_EQUAL(u_int32_t(1), queue->getMessageCount());
+
+ TestConsumer consumer;
+ queue->consume(&consumer);
+ queue->dispatch();
+ CPPUNIT_ASSERT_EQUAL(msg3.get(), consumer.last.get());
+ CPPUNIT_ASSERT_EQUAL(u_int32_t(0), queue->getMessageCount());
+
+ received = queue->dequeue();
+ CPPUNIT_ASSERT(!received);
+ CPPUNIT_ASSERT_EQUAL(u_int32_t(0), queue->getMessageCount());
+
+ }
};
// Make this test suite a plugin.