summaryrefslogtreecommitdiff
path: root/cpp/tests
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-02-17 03:46:44 +0000
committerAlan Conway <aconway@apache.org>2007-02-17 03:46:44 +0000
commitf972bfa6c7c9a1b3d5f5fe4753dce7358b6b0215 (patch)
treea3d37ef1999eb4ebdb8bb9d6eaea8b2d3de5dfe2 /cpp/tests
parent72de13352dc9c42acfe95a1d76f049c507eb5cfd (diff)
downloadqpid-python-f972bfa6c7c9a1b3d5f5fe4753dce7358b6b0215.tar.gz
* cpp/lib/client/ClientMessage.h/.cpp: Added Message constructor taking data.
* cpp/lib/client/IncomingMessage.cpp: Simplified message aggregation. * cpp/lib/common/framing/AMQ*Body.h: remove unnecessary virtual inheritance. * cpp/lib/common/framing/AMQMethodBody.h: add bool isRequest, isResponse * cpp/lib/common/sys/Mutex.h (class ScopedUnlock): Added ScopedUnlock * cpp/lib/common/sys/ThreadSafeQueue.h: Thread-safe queue template. * cpp/tests/BrokerChannelTest.cpp: Renamed from ChannelTest. * cpp/tests/ClientChannelTest.cpp: Test client API. * cpp/tests/RequestResponseTest.cpp: Removed empty test. * cpp/lib/client/Connection.h,.cpp: - non-static channelIdCounter - No close() in dtor. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@508705 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/tests')
-rw-r--r--cpp/tests/BrokerChannelTest.cpp (renamed from cpp/tests/ChannelTest.cpp)8
-rw-r--r--cpp/tests/ClientChannelTest.cpp82
-rw-r--r--cpp/tests/InProcessBroker.h7
-rw-r--r--cpp/tests/Makefile.am32
-rw-r--r--cpp/tests/RequestResponseTest.cpp57
5 files changed, 106 insertions, 80 deletions
diff --git a/cpp/tests/ChannelTest.cpp b/cpp/tests/BrokerChannelTest.cpp
index c20a490dc8..bd96d554b4 100644
--- a/cpp/tests/ChannelTest.cpp
+++ b/cpp/tests/BrokerChannelTest.cpp
@@ -48,9 +48,9 @@ struct MockHandler : ConnectionOutputHandler{
};
-class ChannelTest : public CppUnit::TestCase
+class BrokerChannelTest : public CppUnit::TestCase
{
- CPPUNIT_TEST_SUITE(ChannelTest);
+ CPPUNIT_TEST_SUITE(BrokerChannelTest);
CPPUNIT_TEST(testConsumerMgmt);
CPPUNIT_TEST(testDeliveryNoAck);
CPPUNIT_TEST(testDeliveryAndRecovery);
@@ -142,7 +142,7 @@ class ChannelTest : public CppUnit::TestCase
public:
- ChannelTest() :
+ BrokerChannelTest() :
broker(Broker::create()),
connection(&handler, *broker)
{
@@ -353,4 +353,4 @@ class ChannelTest : public CppUnit::TestCase
// Make this test suite a plugin.
CPPUNIT_PLUGIN_IMPLEMENT();
-CPPUNIT_TEST_SUITE_REGISTRATION(ChannelTest);
+CPPUNIT_TEST_SUITE_REGISTRATION(BrokerChannelTest);
diff --git a/cpp/tests/ClientChannelTest.cpp b/cpp/tests/ClientChannelTest.cpp
new file mode 100644
index 0000000000..e1eec4402d
--- /dev/null
+++ b/cpp/tests/ClientChannelTest.cpp
@@ -0,0 +1,82 @@
+/*
+ *
+ * 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 "qpid_test_plugin.h"
+#include "InProcessBroker.h"
+#include "ClientChannel.h"
+#include "ClientMessage.h"
+#include "ClientQueue.h"
+#include "ClientExchange.h"
+
+using namespace std;
+using namespace boost;
+using namespace qpid::client;
+using namespace qpid::framing;
+
+/**
+ * Test client API using an in-process broker.
+ */
+class ClientChannelTest : public CppUnit::TestCase
+{
+ CPPUNIT_TEST_SUITE(ClientChannelTest);
+ CPPUNIT_TEST(testGet);
+ CPPUNIT_TEST(testConsume);
+ CPPUNIT_TEST_SUITE_END();
+
+ InProcessBrokerClient connection; // client::connection + local broker
+ Channel channel;
+ const std::string key;
+ const std::string data;
+ Queue queue;
+ Exchange exchange;
+
+ public:
+
+ ClientChannelTest()
+ : key("testq"), data("hello"),
+ queue(key, true), exchange("", Exchange::DIRECT_EXCHANGE)
+ {
+ connection.openChannel(channel);
+ CPPUNIT_ASSERT(channel.getId() != 0);
+ channel.declareQueue(queue);
+ }
+
+ void testGet() {
+ // FIXME aconway 2007-02-16: Must fix thread safety bug
+ // in ClientChannel::get for this to pass.
+ return;
+
+ Message pubMsg(data);
+ channel.publish(pubMsg, exchange, key);
+ Message getMsg;
+ channel.get(getMsg, queue);
+ CPPUNIT_ASSERT_EQUAL(data, getMsg.getData());
+ }
+
+ void testConsume() {
+ }
+
+
+ // FIXME aconway 2007-02-15: Cover full channel API
+};
+
+// Make this test suite a plugin.
+CPPUNIT_PLUGIN_IMPLEMENT();
+CPPUNIT_TEST_SUITE_REGISTRATION(ClientChannelTest);
diff --git a/cpp/tests/InProcessBroker.h b/cpp/tests/InProcessBroker.h
index 9cd7cc69cb..709ca9b953 100644
--- a/cpp/tests/InProcessBroker.h
+++ b/cpp/tests/InProcessBroker.h
@@ -152,19 +152,18 @@ std::ostream& operator<<(
class InProcessBrokerClient : public qpid::client::Connection {
public:
qpid::broker::InProcessBroker broker;
+ qpid::broker::InProcessBroker::Conversation& conversation;
/** Constructor creates broker and opens client connection. */
InProcessBrokerClient(qpid::framing::ProtocolVersion version=
qpid::framing::highestProtocolVersion
- ) : broker(version)
+ ) : broker(version), conversation(broker.conversation)
{
setConnector(broker);
open("");
}
- ~InProcessBrokerClient() {
- close(); // close before broker is deleted.
- }
+ ~InProcessBrokerClient() {}
};
#endif // _tests_InProcessBroker_h
diff --git a/cpp/tests/Makefile.am b/cpp/tests/Makefile.am
index 768558f219..27cea8a952 100644
--- a/cpp/tests/Makefile.am
+++ b/cpp/tests/Makefile.am
@@ -9,15 +9,11 @@ INCLUDES = \
-I$(top_srcdir)/lib/common/framing \
$(APR_CXXFLAGS)
-client_exe_tests = \
- client_test \
- echo_service \
- topic_listener \
- topic_publisher
+# Unit tests
broker_tests = \
AccumulatedAckTest \
- ChannelTest \
+ BrokerChannelTest \
ConfigurationTest \
ExchangeTest \
HeadersExchangeTest \
@@ -34,12 +30,10 @@ broker_tests = \
TxBufferTest \
TxPublishTest \
ValueTest \
- MessageHandlerTest
+ MessageHandlerTest
-# Tests that use the in-process BrokerSingleton to test client-broker
-# interaction. Not strictly unit tests.
-round_trip_tests = \
- RequestResponseTest
+client_tests = \
+ ClientChannelTest
framing_tests = \
FieldTableTest \
@@ -48,17 +42,25 @@ framing_tests = \
misc_tests = \
ExceptionTest \
- ProducerConsumerTest
+ ProducerConsumerTest
posix_tests = \
EventChannelTest \
EventChannelThreadsTest
unit_tests = \
-b $(broker_tests) \
+ $(broker_tests) \
+ $(client_tests) \
$(framing_tests) \
- $(misc_tests) \
- $(round_trip_tests)
+ $(misc_tests)
+
+# Executable client tests
+
+client_exe_tests = \
+ client_test \
+ echo_service \
+ topic_listener \
+ topic_publisher
noinst_PROGRAMS = $(client_exe_tests)
diff --git a/cpp/tests/RequestResponseTest.cpp b/cpp/tests/RequestResponseTest.cpp
deleted file mode 100644
index 1cb1a49275..0000000000
--- a/cpp/tests/RequestResponseTest.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * 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 <qpid_test_plugin.h>
-#include "BrokerSingleton.h"
-#include "broker/Broker.h"
-#include "client/Connection.h"
-#include "client/ClientChannel.h"
-
-/**
- * Round trip test using in-process broker.
- * Verify request/response IDs
- */
-class RequestResponseTest : public CppUnit::TestCase
-{
- CPPUNIT_TEST_SUITE(RequestResponseTest);
- CPPUNIT_TEST(testAsRequester);
- CPPUNIT_TEST(testAsResponder);
- CPPUNIT_TEST_SUITE_END();
-
- qpid::broker::Broker::shared_ptr broker;
-
- public:
-
- void testAsRequester() {
-// FIXME aconway 2007-01-22: CPPUNIT_FAIL("unfinished");
- }
- void testAsResponder() {
-// FIXME aconway 2007-01-22: CPPUNIT_FAIL("unfinished");
- }
-};
-
-
-// Make this test suite a plugin.
-CPPUNIT_PLUGIN_IMPLEMENT();
-CPPUNIT_TEST_SUITE_REGISTRATION(RequestResponseTest);
-
-
-