You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2010/05/14 15:55:03 UTC

svn commit: r944260 - in /qpid/trunk/qpid/cpp/src/tests: MessagingFixture.h MessagingSessionTests.cpp

Author: aconway
Date: Fri May 14 13:55:03 2010
New Revision: 944260

URL: http://svn.apache.org/viewvc?rev=944260&view=rev
Log:
Move helper classes/functions from MessagingSessionTests.cpp to MessagingFixture.h for sharing with other tests.

Added:
    qpid/trunk/qpid/cpp/src/tests/MessagingFixture.h
Modified:
    qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp

Added: qpid/trunk/qpid/cpp/src/tests/MessagingFixture.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/MessagingFixture.h?rev=944260&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/MessagingFixture.h (added)
+++ qpid/trunk/qpid/cpp/src/tests/MessagingFixture.h Fri May 14 13:55:03 2010
@@ -0,0 +1,215 @@
+#ifndef TESTS_MESSAGINGFIXTURE_H
+#define TESTS_MESSAGINGFIXTURE_H
+
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 "BrokerFixture.h"
+#include "unit_test.h"
+#include "test_tools.h"
+#include "qpid/client/Connection.h"
+#include "qpid/client/Session.h"
+#include "qpid/framing/Uuid.h"
+#include "qpid/messaging/Connection.h"
+#include "qpid/messaging/Session.h"
+#include "qpid/messaging/Sender.h"
+#include "qpid/messaging/Receiver.h"
+#include "qpid/messaging/Message.h"
+
+namespace qpid {
+namespace tests {
+
+struct BrokerAdmin
+{
+    qpid::client::Connection connection;
+    qpid::client::Session session;
+
+    BrokerAdmin(uint16_t port)
+    {
+        connection.open("localhost", port);
+        session = connection.newSession();
+    }
+
+    void createQueue(const std::string& name)
+    {
+        session.queueDeclare(qpid::client::arg::queue=name);
+    }
+
+    void deleteQueue(const std::string& name)
+    {
+        session.queueDelete(qpid::client::arg::queue=name);
+    }
+
+    void createExchange(const std::string& name, const std::string& type)
+    {
+        session.exchangeDeclare(qpid::client::arg::exchange=name, qpid::client::arg::type=type);
+    }
+
+    void deleteExchange(const std::string& name)
+    {
+        session.exchangeDelete(qpid::client::arg::exchange=name);
+    }
+
+    bool checkQueueExists(const std::string& name)
+    {
+        return session.queueQuery(name).getQueue() == name;
+    }
+
+    bool checkExchangeExists(const std::string& name, std::string& type)
+    {
+        qpid::framing::ExchangeQueryResult result = session.exchangeQuery(name);
+        type = result.getType();
+        return !result.getNotFound();
+    }
+
+    ~BrokerAdmin()
+    {
+        session.close();
+        connection.close();
+    }
+};
+
+struct MessagingFixture : public BrokerFixture
+{
+    messaging::Connection connection;
+    messaging::Session session;
+    BrokerAdmin admin;
+
+    MessagingFixture(Broker::Options opts = Broker::Options()) :
+        BrokerFixture(opts),
+        connection(open(broker->getPort(Broker::TCP_TRANSPORT))),
+        session(connection.createSession()),
+        admin(broker->getPort(Broker::TCP_TRANSPORT))
+    {
+    }
+
+    static messaging::Connection open(uint16_t port)
+    {
+        messaging::Connection connection(
+            (boost::format("amqp:tcp:localhost:%1%") % (port)).str());
+        connection.open();
+        return connection;
+    }
+
+    void ping(const qpid::messaging::Address& address)
+    {
+        messaging::Receiver r = session.createReceiver(address);
+        messaging::Sender s = session.createSender(address);
+        messaging::Message out(framing::Uuid(true).str());
+        s.send(out);
+        messaging::Message in;
+        BOOST_CHECK(r.fetch(in, 5*messaging::Duration::SECOND));
+        BOOST_CHECK_EQUAL(out.getContent(), in.getContent());
+        r.close();
+        s.close();
+    }
+
+    ~MessagingFixture()
+    {
+        session.close();
+        connection.close();
+    }
+};
+
+struct QueueFixture : MessagingFixture
+{
+    std::string queue;
+
+    QueueFixture(const std::string& name = "test-queue") : queue(name)
+    {
+        admin.createQueue(queue);
+    }
+
+    ~QueueFixture()
+    {
+        admin.deleteQueue(queue);
+    }
+
+};
+
+struct TopicFixture : MessagingFixture
+{
+    std::string topic;
+
+    TopicFixture(const std::string& name = "test-topic", const std::string& type="fanout") : topic(name)
+    {
+        admin.createExchange(topic, type);
+    }
+
+    ~TopicFixture()
+    {
+        admin.deleteExchange(topic);
+    }
+
+};
+
+struct MultiQueueFixture : MessagingFixture
+{
+    typedef std::vector<std::string>::const_iterator const_iterator;
+    std::vector<std::string> queues;
+
+    MultiQueueFixture(const std::vector<std::string>& names = boost::assign::list_of<std::string>("q1")("q2")("q3")) : queues(names)
+    {
+        for (const_iterator i = queues.begin(); i != queues.end(); ++i) {
+            admin.createQueue(*i);
+        }
+    }
+
+    ~MultiQueueFixture()
+    {
+        connection.close();
+        for (const_iterator i = queues.begin(); i != queues.end(); ++i) {
+            admin.deleteQueue(*i);
+        }
+    }
+
+};
+
+std::vector<std::string> fetch(messaging::Receiver& receiver, int count, messaging::Duration timeout=messaging::Duration::SECOND*5)
+{
+    std::vector<std::string> data;
+    messaging::Message message;
+    for (int i = 0; i < count && receiver.fetch(message, timeout); i++) {
+        data.push_back(message.getContent());
+    }
+    return data;
+}
+
+
+void send(messaging::Sender& sender, uint count = 1, uint start = 1,
+          const std::string& base = "Message")
+{
+    for (uint i = start; i < start + count; ++i) {
+        sender.send(messaging::Message((boost::format("%1%_%2%") % base % i).str()));
+    }
+}
+
+void receive(messaging::Receiver& receiver, uint count = 1, uint start = 1,
+             const std::string& base = "Message",
+             messaging::Duration timeout=messaging::Duration::SECOND*5)
+{
+    for (uint i = start; i < start + count; ++i) {
+        BOOST_CHECK_EQUAL(receiver.fetch(timeout).getContent(), (boost::format("%1%_%2%") % base % i).str());
+    }
+}
+
+}} // namespace qpid::tests
+
+#endif  /*!TESTS_MESSAGINGFIXTURE_H*/

Modified: qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp?rev=944260&r1=944259&r2=944260&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/MessagingSessionTests.cpp Fri May 14 13:55:03 2010
@@ -18,9 +18,9 @@
  * under the License.
  *
  */
+#include "MessagingFixture.h"
 #include "unit_test.h"
 #include "test_tools.h"
-#include "BrokerFixture.h"
 #include "qpid/messaging/Address.h"
 #include "qpid/messaging/Connection.h"
 #include "qpid/messaging/Message.h"
@@ -49,175 +49,6 @@ using namespace qpid;
 using qpid::broker::Broker;
 using qpid::framing::Uuid;
 
-struct BrokerAdmin
-{
-    qpid::client::Connection connection;
-    qpid::client::Session session;
-
-    BrokerAdmin(uint16_t port)
-    {
-        connection.open("localhost", port);
-        session = connection.newSession();
-    }
-
-    void createQueue(const std::string& name)
-    {
-        session.queueDeclare(qpid::client::arg::queue=name);
-    }
-
-    void deleteQueue(const std::string& name)
-    {
-        session.queueDelete(qpid::client::arg::queue=name);
-    }
-
-    void createExchange(const std::string& name, const std::string& type)
-    {
-        session.exchangeDeclare(qpid::client::arg::exchange=name, qpid::client::arg::type=type);
-    }
-
-    void deleteExchange(const std::string& name)
-    {
-        session.exchangeDelete(qpid::client::arg::exchange=name);
-    }
-
-    bool checkQueueExists(const std::string& name)
-    {
-        return session.queueQuery(name).getQueue() == name;
-    }
-
-    bool checkExchangeExists(const std::string& name, std::string& type)
-    {
-        qpid::framing::ExchangeQueryResult result = session.exchangeQuery(name);
-        type = result.getType();
-        return !result.getNotFound();
-    }
-
-    ~BrokerAdmin()
-    {
-        session.close();
-        connection.close();
-    }
-};
-
-struct MessagingFixture : public BrokerFixture
-{
-    Connection connection;
-    Session session;
-    BrokerAdmin admin;
-
-    MessagingFixture(Broker::Options opts = Broker::Options()) :
-        BrokerFixture(opts),
-        connection(open(broker->getPort(Broker::TCP_TRANSPORT))),
-        session(connection.createSession()),
-        admin(broker->getPort(Broker::TCP_TRANSPORT))
-    {
-    }
-
-    static Connection open(uint16_t port)
-    {
-        Connection connection((boost::format("amqp:tcp:localhost:%1%") % (port)).str());
-        connection.open();
-        return connection;
-    }
-
-    void ping(const qpid::messaging::Address& address)
-    {
-        Receiver r = session.createReceiver(address);
-        Sender s = session.createSender(address);
-        Message out(Uuid(true).str());
-        s.send(out);
-        Message in;
-        BOOST_CHECK(r.fetch(in, 5*Duration::SECOND));
-        BOOST_CHECK_EQUAL(out.getContent(), in.getContent());
-        r.close();
-        s.close();
-    }
-
-    ~MessagingFixture()
-    {
-        session.close();
-        connection.close();
-    }
-};
-
-struct QueueFixture : MessagingFixture
-{
-    std::string queue;
-
-    QueueFixture(const std::string& name = "test-queue") : queue(name)
-    {
-        admin.createQueue(queue);
-    }
-
-    ~QueueFixture()
-    {
-        admin.deleteQueue(queue);
-    }
-
-};
-
-struct TopicFixture : MessagingFixture
-{
-    std::string topic;
-
-    TopicFixture(const std::string& name = "test-topic", const std::string& type="fanout") : topic(name)
-    {
-        admin.createExchange(topic, type);
-    }
-
-    ~TopicFixture()
-    {
-        admin.deleteExchange(topic);
-    }
-
-};
-
-struct MultiQueueFixture : MessagingFixture
-{
-    typedef std::vector<std::string>::const_iterator const_iterator;
-    std::vector<std::string> queues;
-
-    MultiQueueFixture(const std::vector<std::string>& names = boost::assign::list_of<std::string>("q1")("q2")("q3")) : queues(names)
-    {
-        for (const_iterator i = queues.begin(); i != queues.end(); ++i) {
-            admin.createQueue(*i);
-        }
-    }
-
-    ~MultiQueueFixture()
-    {
-        connection.close();
-        for (const_iterator i = queues.begin(); i != queues.end(); ++i) {
-            admin.deleteQueue(*i);
-        }
-    }
-
-};
-std::vector<std::string> fetch(Receiver& receiver, int count, Duration timeout=Duration::SECOND*5)
-{
-    std::vector<std::string> data;
-    Message message;
-    for (int i = 0; i < count && receiver.fetch(message, timeout); i++) {
-        data.push_back(message.getContent());
-    }
-    return data;
-}
-
-
-void send(Sender& sender, uint count = 1, uint start = 1, const std::string& base = "Message")
-{
-    for (uint i = start; i < start + count; ++i) {
-        sender.send(Message((boost::format("%1%_%2%") % base % i).str()));
-    }
-}
-
-void receive(Receiver& receiver, uint count = 1, uint start = 1,
-             const std::string& base = "Message", Duration timeout=Duration::SECOND*5)
-{
-    for (uint i = start; i < start + count; ++i) {
-        BOOST_CHECK_EQUAL(receiver.fetch(timeout).getContent(), (boost::format("%1%_%2%") % base % i).str());
-    }
-}
 
 QPID_AUTO_TEST_CASE(testSimpleSendReceive)
 {



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org