From 4d560b89fa09056c22cd42e212c9ce8addeecb5a Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 25 Jun 2008 20:51:30 +0000 Subject: Additions to the client API: - SubscriptionManager::get(queue) to get a single message from a queue. - Set FlowControl per-subscription. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@671655 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/tests/cluster_client.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'cpp/src/tests/cluster_client.cpp') diff --git a/cpp/src/tests/cluster_client.cpp b/cpp/src/tests/cluster_client.cpp index f6b3a80c97..efb6e04aa8 100644 --- a/cpp/src/tests/cluster_client.cpp +++ b/cpp/src/tests/cluster_client.cpp @@ -62,14 +62,14 @@ QPID_AUTO_TEST_CASE(testWiringReplication) { ClusterConnections cluster; BOOST_REQUIRE(cluster.size() > 1); - Session broker0 = cluster[0]->newSession(ASYNC); + Session broker0 = cluster[0]->newSession(); broker0.exchangeDeclare(exchange="ex"); broker0.queueDeclare(queue="q"); broker0.queueBind(exchange="ex", queue="q", routingKey="key"); broker0.close(); for (size_t i = 1; i < cluster.size(); ++i) { - Session s = cluster[i]->newSession(ASYNC); + Session s = cluster[i]->newSession(); s.messageTransfer(content=TransferContent("data", "key", "ex")); s.messageSubscribe(queue="q", destination="q"); s.messageFlow(destination="q", unit=0, value=1);//messages @@ -81,4 +81,28 @@ QPID_AUTO_TEST_CASE(testWiringReplication) { } } +QPID_AUTO_TEST_CASE(testMessageReplication) { + // Enqueue on one broker, dequeue on another. + ClusterConnections cluster; + BOOST_REQUIRE(cluster.size() > 1); + + Session broker0 = cluster[0]->newSession(); + broker0.queueDeclare(queue="q"); + broker0.messageTransfer(content=TransferContent("data", "q")); + broker0.close(); + + Session broker1 = cluster[1]->newSession(); + broker1. + s.messageSubscribe(queue="q", destination="q"); + s.messageFlow(destination="q", unit=0, value=1);//messages + FrameSet::shared_ptr msg = s.get(); + BOOST_CHECK(msg->isA()); + BOOST_CHECK_EQUAL(string("data"), msg->getContent()); + s.getExecution().completed(msg->getId(), true, true); + cluster[i]->close(); + } +} + +// TODO aconway 2008-06-25: dequeue replication, exactly once delivery, failover. + QPID_AUTO_TEST_SUITE_END() -- cgit v1.2.1