summaryrefslogtreecommitdiff
path: root/cpp/tests/EventChannelConnectionTest.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-03-21 02:05:56 +0000
committerAlan Conway <aconway@apache.org>2007-03-21 02:05:56 +0000
commit371d76b7e0f8358d5296722f2f2c0e28181a3935 (patch)
tree7bdb290ebe3506f2d9f75c6f9562c5e7932120ae /cpp/tests/EventChannelConnectionTest.cpp
parent862b354f6f777314cd4013f5cbd5aaf0003808d7 (diff)
downloadqpid-python-371d76b7e0f8358d5296722f2f2c0e28181a3935.tar.gz
* cpp: svn removed, will rename cpp-0-9
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@520705 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/tests/EventChannelConnectionTest.cpp')
-rw-r--r--cpp/tests/EventChannelConnectionTest.cpp109
1 files changed, 0 insertions, 109 deletions
diff --git a/cpp/tests/EventChannelConnectionTest.cpp b/cpp/tests/EventChannelConnectionTest.cpp
deleted file mode 100644
index a6b309d771..0000000000
--- a/cpp/tests/EventChannelConnectionTest.cpp
+++ /dev/null
@@ -1,109 +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 <iostream>
-#include <boost/bind.hpp>
-#include "framing/AMQHeartbeatBody.h"
-#include "framing/AMQFrame.h"
-#include "sys/posix/EventChannelConnection.h"
-#include "sys/SessionHandler.h"
-#include "sys/SessionHandlerFactory.h"
-#include "sys/Socket.h"
-#include "qpid_test_plugin.h"
-#include "MockSessionHandler.h"
-
-using namespace qpid::sys;
-using namespace qpid::framing;
-using namespace std;
-
-class EventChannelConnectionTest : public CppUnit::TestCase
-{
- CPPUNIT_TEST_SUITE(EventChannelConnectionTest);
- CPPUNIT_TEST(testSendReceive);
- CPPUNIT_TEST(testCloseExternal);
- CPPUNIT_TEST(testCloseException);
- CPPUNIT_TEST_SUITE_END();
-
- public:
-
- void setUp() {
- threads = EventChannelThreads::create();
- CPPUNIT_ASSERT_EQUAL(0, ::pipe(pipe));
- connection.reset(
- new EventChannelConnection(threads, factory, pipe[0], pipe[1]));
- CPPUNIT_ASSERT(factory.handler != 0);
- }
-
- void tearDown() {
- threads->shutdown();
- threads->join();
- }
-
- void testSendReceive()
- {
- // Send a protocol initiation.
- Buffer buf(1024);
- ProtocolInitiation(4,2).encode(buf);
- buf.flip();
- ssize_t n = write(pipe[1], buf.start(), buf.available());
- CPPUNIT_ASSERT_EQUAL(ssize_t(buf.available()), n);
-
- // Verify session handler got the protocol init.
- ProtocolInitiation init = factory.handler->waitForProtocolInit();
- CPPUNIT_ASSERT_EQUAL(int(4), int(init.getMajor()));
- CPPUNIT_ASSERT_EQUAL(int(2), int(init.getMinor()));
-
- // Send a heartbeat frame, verify connection got it.
- connection->send(new AMQFrame(42, new AMQHeartbeatBody()));
- AMQFrame frame = factory.handler->waitForFrame();
- CPPUNIT_ASSERT_EQUAL(u_int16_t(42), frame.getChannel());
- CPPUNIT_ASSERT_EQUAL(u_int8_t(HEARTBEAT_BODY),
- frame.getBody()->type());
- threads->shutdown();
- }
-
- // Make sure the handler is closed if the connection is closed.
- void testCloseExternal() {
- connection->close();
- factory.handler->waitForClosed();
- }
-
- // Make sure the handler is closed if the connection closes or fails.
- // TODO aconway 2006-12-18: logs exception message in test output.
- void testCloseException() {
- ::close(pipe[0]);
- ::close(pipe[1]);
- // TODO aconway 2006-12-18: Shouldn't this be failing?
- connection->send(new AMQFrame(42, new AMQHeartbeatBody()));
- factory.handler->waitForClosed();
- }
-
- private:
- EventChannelThreads::shared_ptr threads;
- int pipe[2];
- std::auto_ptr<EventChannelConnection> connection;
- MockSessionHandlerFactory factory;
-};
-
-// Make this test suite a plugin.
-CPPUNIT_PLUGIN_IMPLEMENT();
-CPPUNIT_TEST_SUITE_REGISTRATION(EventChannelConnectionTest);
-