diff options
author | Alan Conway <aconway@apache.org> | 2008-10-20 13:58:23 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-10-20 13:58:23 +0000 |
commit | 40e17612ff0494ccd440a3a0a3789daabcfb3684 (patch) | |
tree | 569d53ad5f6280a151eb1f7019c92e9d3e4f9848 /cpp/src/tests/cluster_test.cpp | |
parent | ac0eb22016bf9ae223f147927ba76add8d25dc31 (diff) | |
download | qpid-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.cpp | 19 |
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); |