diff options
author | Alan Conway <aconway@apache.org> | 2007-07-03 18:27:06 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-07-03 18:27:06 +0000 |
commit | 55e6526bff23f11b4e2d6645e72488251914a501 (patch) | |
tree | 3c15da3f0944a39596191939d23a3976ea60f661 /qpid/cpp/src/tests/cluster_client.cpp | |
parent | a7a3409349acfaa659e32ddc7e3cf015d03ae749 (diff) | |
download | qpid-python-55e6526bff23f11b4e2d6645e72488251914a501.tar.gz |
* src/tests/cluster_client.cpp: Cluster client test not yet included in test harness.
* src/tests/start_cluster,src/tests/stop_cluster: scripts to start/stop cluster of
processes on localhost.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@552941 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/cluster_client.cpp')
-rw-r--r-- | qpid/cpp/src/tests/cluster_client.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/cluster_client.cpp b/qpid/cpp/src/tests/cluster_client.cpp new file mode 100644 index 0000000000..421a33a40a --- /dev/null +++ b/qpid/cpp/src/tests/cluster_client.cpp @@ -0,0 +1,77 @@ +/* + * + * Copyright (c) 2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "qpid/client/Connection.h" +#include "qpid/shared_ptr.h" + +#define BOOST_AUTO_TEST_MAIN // Must come before #include<boost/test/*> +#include <boost/test/auto_unit_test.hpp> + +#include <fstream> +#include <vector> +#include <functional> + +using namespace std; +using namespace qpid; +using namespace qpid::client; + +struct ClusterConnections : public vector<shared_ptr<Connection> > { + ClusterConnections() { + ifstream portfile("cluster.ports"); + BOOST_REQUIRE(portfile.good()); + portfile >> ws; + while (portfile.good()) { + uint16_t port; + portfile >> port >> ws; + push_back(make_shared_ptr(new Connection(port))); + back()->open("localhost", port); + } + BOOST_REQUIRE(size() > 1); + } + + ~ClusterConnections() { + for (iterator i = begin(); i != end(); ++i ){ + (*i)->close(); + } + } +}; + +BOOST_AUTO_TEST_CASE(testWiringReplication) { + ClusterConnections cluster; + BOOST_REQUIRE(cluster.size() > 1); + + Exchange fooEx("FooEx", Exchange::TOPIC_EXCHANGE); + Queue fooQ("FooQ"); + + Channel broker0; + cluster[0]->openChannel(broker0); + broker0.declareExchange(fooEx); + broker0.declareQueue(fooQ); + broker0.bind(fooEx, fooQ, "FooKey"); + + Channel broker1; + cluster[1]->openChannel(broker1); + broker1.publish(Message("hello"), fooEx, "FooKey"); + Message m; + BOOST_REQUIRE(broker1.get(m, fooQ)); + BOOST_REQUIRE_EQUAL(m.getData(), "hello"); +} + + + + |