summaryrefslogtreecommitdiff
path: root/cpp/src/tests/QueuePolicyTest.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-09-23 01:05:27 +0000
committerGordon Sim <gsim@apache.org>2008-09-23 01:05:27 +0000
commit67d2fcac7da32bb273234908dc1567d728067ad2 (patch)
tree73eea1f9decc23af8c7b44c5875f37e22eac0983 /cpp/src/tests/QueuePolicyTest.cpp
parent6e1a539316872622aaf1c2b997bf1432cc3b90f7 (diff)
downloadqpid-python-67d2fcac7da32bb273234908dc1567d728067ad2.tar.gz
Additional policy test
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@698054 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/QueuePolicyTest.cpp')
-rw-r--r--cpp/src/tests/QueuePolicyTest.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/tests/QueuePolicyTest.cpp b/cpp/src/tests/QueuePolicyTest.cpp
index 4267047c3f..d7f3fa5628 100644
--- a/cpp/src/tests/QueuePolicyTest.cpp
+++ b/cpp/src/tests/QueuePolicyTest.cpp
@@ -156,5 +156,28 @@ QPID_AUTO_TEST_CASE(testRingPolicy)
BOOST_CHECK(!f.subs.get(msg, q));
}
+QPID_AUTO_TEST_CASE(testStrictRingPolicy)
+{
+ FieldTable args;
+ std::auto_ptr<QueuePolicy> policy = QueuePolicy::createQueuePolicy(5, 0, QueuePolicy::RING_STRICT);
+ policy->update(args);
+
+ ProxySessionFixture f;
+ std::string q("my-ring-queue");
+ f.session.queueDeclare(arg::queue=q, arg::exclusive=true, arg::autoDelete=true, arg::arguments=args);
+ LocalQueue incoming(AckPolicy(0));//no automatic acknowledgements
+ f.subs.subscribe(incoming, q);
+ for (int i = 0; i < 5; i++) {
+ f.session.messageTransfer(arg::content=client::Message((boost::format("%1%_%2%") % "Message" % (i+1)).str(), q));
+ }
+ for (int i = 0; i < 5; i++) {
+ BOOST_CHECK_EQUAL(incoming.pop().getData(), (boost::format("%1%_%2%") % "Message" % (i+1)).str());
+ }
+ try {
+ f.session.messageTransfer(arg::content=client::Message("Message_6", q));
+ BOOST_FAIL("Transfer should have failed as ");
+ } catch (const ResourceLimitExceededException&) {}
+}
+
QPID_AUTO_TEST_SUITE_END()