summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/cluster_client.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-06-25 20:51:30 +0000
committerAlan Conway <aconway@apache.org>2008-06-25 20:51:30 +0000
commit23b153214d057627be9d00f8cc14280cd89eb95b (patch)
tree150a06aa11744b1187ed51bd3154c8e9b9eb19ac /qpid/cpp/src/tests/cluster_client.cpp
parent4f72761ff1c309fca15956d1860b165530d3d353 (diff)
downloadqpid-python-23b153214d057627be9d00f8cc14280cd89eb95b.tar.gz
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@671655 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/cluster_client.cpp')
-rw-r--r--qpid/cpp/src/tests/cluster_client.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/qpid/cpp/src/tests/cluster_client.cpp b/qpid/cpp/src/tests/cluster_client.cpp
index f6b3a80c97..efb6e04aa8 100644
--- a/qpid/cpp/src/tests/cluster_client.cpp
+++ b/qpid/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<MessageTransferBody>());
+ 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()