Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 41533 invoked from network); 13 Mar 2009 15:13:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Mar 2009 15:13:49 -0000 Received: (qmail 70773 invoked by uid 500); 13 Mar 2009 15:13:49 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 70758 invoked by uid 500); 13 Mar 2009 15:13:49 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 70749 invoked by uid 99); 13 Mar 2009 15:13:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Mar 2009 08:13:49 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Mar 2009 15:13:40 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 49EB92388D08; Fri, 13 Mar 2009 15:13:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r753295 - in /activemq/activemq-cpp/trunk/src: main/activemq/transport/mock/MockTransportFactory.cpp test/activemq/transport/failover/FailoverTransportTest.cpp test/activemq/transport/failover/FailoverTransportTest.h Date: Fri, 13 Mar 2009 15:13:18 -0000 To: commits@activemq.apache.org From: tabish@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090313151319.49EB92388D08@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tabish Date: Fri Mar 13 15:13:18 2009 New Revision: 753295 URL: http://svn.apache.org/viewvc?rev=753295&view=rev Log: http://issues.apache.org/activemq/browse/AMQCPP-100 Add new test to validate that the maxReconnectionAttempts parameter works and an exception if forwarded when the max attempts value is reached. Modified: activemq/activemq-cpp/trunk/src/main/activemq/transport/mock/MockTransportFactory.cpp activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.cpp activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.h Modified: activemq/activemq-cpp/trunk/src/main/activemq/transport/mock/MockTransportFactory.cpp URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/mock/MockTransportFactory.cpp?rev=753295&r1=753294&r2=753295&view=diff ============================================================================== --- activemq/activemq-cpp/trunk/src/main/activemq/transport/mock/MockTransportFactory.cpp (original) +++ activemq/activemq-cpp/trunk/src/main/activemq/transport/mock/MockTransportFactory.cpp Fri Mar 13 15:13:18 2009 @@ -26,6 +26,7 @@ #include #include +#include #include using namespace activemq; @@ -115,9 +116,16 @@ builder.reset( new wireformat::openwire::OpenWireResponseBuilder() ); } - Pointer transport( new MockTransport( wireFormat, builder ) ); - + Pointer transport( new MockTransport( wireFormat, builder ) ); + transport->setFailOnSendMessage( + Boolean::parseBoolean( properties.getProperty( "failOnSendMessage", "false" ) ) ); + transport->setNumSentMessageBeforeFail( + Integer::parseInt( properties.getProperty( "numSentMessageBeforeFail", "0" ) ) ); + transport->setFailOnReceiveMessage( + Boolean::parseBoolean( properties.getProperty( "failOnReceiveMessage", "false" ) ) ); + transport->setNumReceivedMessageBeforeFail( + Integer::parseInt( properties.getProperty( "numReceivedMessageBeforeFail", "0" ) ) ); return transport; } Modified: activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.cpp URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.cpp?rev=753295&r1=753294&r2=753295&view=diff ============================================================================== --- activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.cpp (original) +++ activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.cpp Fri Mar 13 15:13:18 2009 @@ -84,3 +84,44 @@ transport->start(); transport->close(); } + +//////////////////////////////////////////////////////////////////////////////// +class FailToConnectListener : public DefaultTransportListener { +public: + + bool caughtException; + + FailToConnectListener() : caughtException( false ) {} + + virtual void onException( const decaf::lang::Exception& ex AMQCPP_UNUSED ) { + caughtException = true; + } +}; + +//////////////////////////////////////////////////////////////////////////////// +void FailoverTransportTest::testTransportCreateFailOnCreate() { + + std::string uri = + "failover://(mock://localhost:61616?failOnCreate=true)?maxReconnectAttempts=2"; + + FailToConnectListener listener; + FailoverTransportFactory factory; + + Pointer transport( factory.create( uri ) ); + CPPUNIT_ASSERT( transport != NULL ); + transport->setTransportListener( &listener ); + + FailoverTransport* failover = dynamic_cast( + transport->narrow( typeid( FailoverTransport ) ) ); + + CPPUNIT_ASSERT( failover != NULL ); + CPPUNIT_ASSERT( failover->getMaxReconnectAttempts() == 2 ); + + transport->start(); + + Thread::sleep( 2000 ); + + CPPUNIT_ASSERT( listener.caughtException == true ); + + transport->close(); +} Modified: activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.h URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.h?rev=753295&r1=753294&r2=753295&view=diff ============================================================================== --- activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.h (original) +++ activemq/activemq-cpp/trunk/src/test/activemq/transport/failover/FailoverTransportTest.h Fri Mar 13 15:13:18 2009 @@ -31,6 +31,7 @@ CPPUNIT_TEST_SUITE( FailoverTransportTest ); CPPUNIT_TEST( testTransportCreate ); CPPUNIT_TEST( testTransportCreateWithBackups ); + CPPUNIT_TEST( testTransportCreateFailOnCreate ); CPPUNIT_TEST_SUITE_END(); public: @@ -40,6 +41,7 @@ void testTransportCreate(); void testTransportCreateWithBackups(); + void testTransportCreateFailOnCreate(); };