summaryrefslogtreecommitdiff
path: root/cpp/src/tests/cluster_test.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-10-20 13:58:23 +0000
committerAlan Conway <aconway@apache.org>2008-10-20 13:58:23 +0000
commit40e17612ff0494ccd440a3a0a3789daabcfb3684 (patch)
tree569d53ad5f6280a151eb1f7019c92e9d3e4f9848 /cpp/src/tests/cluster_test.cpp
parentac0eb22016bf9ae223f147927ba76add8d25dc31 (diff)
downloadqpid-python-40e17612ff0494ccd440a3a0a3789daabcfb3684.tar.gz
cluster: DumpClient updates consumer notifyEnabled and blocked.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706293 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/cluster_test.cpp')
-rw-r--r--cpp/src/tests/cluster_test.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/cpp/src/tests/cluster_test.cpp b/cpp/src/tests/cluster_test.cpp
index 68920d1324..99ca5c7161 100644
--- a/cpp/src/tests/cluster_test.cpp
+++ b/cpp/src/tests/cluster_test.cpp
@@ -239,8 +239,11 @@ QPID_AUTO_TEST_CASE(DumpConsumers) {
cluster.add();
Client c1(cluster[1], "c1");
+ c1.session.queueDeclare("p");
c1.session.queueDeclare("q");
c1.subs.subscribe(c1.lq, "q", FlowControl::zero());
+ LocalQueue lp;
+ c1.subs.subscribe(lp, "p", FlowControl::messageCredit(1));
c1.session.sync();
// Start new members
@@ -249,22 +252,34 @@ QPID_AUTO_TEST_CASE(DumpConsumers) {
cluster.add();
Client c2(cluster[2], "c2");
- // Transfer a message, verify all members see it.
+ // Transfer messages
c1.session.messageTransfer(arg::content=Message("aaa", "q"));
BOOST_CHECK_EQUAL(c0.session.queueQuery("q").getMessageCount(), 1u);
BOOST_CHECK_EQUAL(c1.session.queueQuery("q").getMessageCount(), 1u);
BOOST_CHECK_EQUAL(c2.session.queueQuery("q").getMessageCount(), 1u);
+ c1.session.messageTransfer(arg::content=Message("bbb", "p"));
+ c1.session.messageTransfer(arg::content=Message("ccc", "p"));
+
// Activate the subscription, ensure message removed on all queues.
c1.subs.setFlowControl("q", FlowControl::unlimited());
Message m;
BOOST_CHECK(c1.lq.get(m, TIME_SEC));
BOOST_CHECK_EQUAL(m.getData(), "aaa");
-
BOOST_CHECK_EQUAL(c1.session.queueQuery("q").getMessageCount(), 0u);
BOOST_CHECK_EQUAL(c1.session.queueQuery("q").getMessageCount(), 0u);
BOOST_CHECK_EQUAL(c2.session.queueQuery("q").getMessageCount(), 0u);
+ // Check second subscription's flow control: getsnn first message, not second.
+ BOOST_CHECK(lp.get(m, TIME_SEC));
+ BOOST_CHECK_EQUAL(m.getData(), "bbb");
+ BOOST_CHECK_EQUAL(c1.session.queueQuery("p").getMessageCount(), 1u);
+ BOOST_CHECK_EQUAL(c1.session.queueQuery("p").getMessageCount(), 1u);
+ BOOST_CHECK_EQUAL(c2.session.queueQuery("p").getMessageCount(), 1u);
+
+ BOOST_CHECK(c1.subs.get(m, "p", TIME_SEC));
+ BOOST_CHECK_EQUAL(m.getData(), "ccc");
+
// Kill the subscribing member, ensure further messages are not removed.
cluster.killWithSilencer(1,c1.connection,9);
cluster.waitFor(2);