You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2013/06/19 20:29:46 UTC

svn commit: r1494731 - in /activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test: TransactionTest.cpp TransactionTest.h openwire/OpenwireTransactionTest.h

Author: tabish
Date: Wed Jun 19 18:29:46 2013
New Revision: 1494731

URL: http://svn.apache.org/r1494731
Log:
test case for: https://issues.apache.org/jira/browse/AMQCPP-494

Modified:
    activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireTransactionTest.h

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.cpp?rev=1494731&r1=1494730&r2=1494731&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.cpp Wed Jun 19 18:29:46 2013
@@ -17,6 +17,7 @@
 
 #include "TransactionTest.h"
 
+#include <activemq/core/ActiveMQConnectionFactory.h>
 #include <activemq/util/CMSListener.h>
 #include <activemq/exceptions/ActiveMQException.h>
 #include <stdexcept>
@@ -24,11 +25,20 @@
 using namespace std;
 using namespace cms;
 using namespace activemq;
+using namespace activemq::core;
 using namespace activemq::test;
 using namespace activemq::util;
 using namespace activemq::exceptions;
 
 ////////////////////////////////////////////////////////////////////////////////
+TransactionTest::TransactionTest() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+TransactionTest::~TransactionTest() {
+}
+
+////////////////////////////////////////////////////////////////////////////////
 void TransactionTest::testSendReceiveTransactedBatches() {
 
     try {
@@ -248,3 +258,33 @@ void TransactionTest::testWithTTLSet() {
     AMQ_CATCH_RETHROW( ActiveMQException )
     AMQ_CATCHALL_THROW( ActiveMQException )
 }
+
+////////////////////////////////////////////////////////////////////////////////
+void TransactionTest::testSessionCommitAfterConsumerClosed() {
+
+    ActiveMQConnectionFactory factory(getBrokerURL());
+    auto_ptr<cms::Connection> connection(factory.createConnection());
+
+    {
+        auto_ptr<cms::Session> session(connection->createSession(cms::Session::AUTO_ACKNOWLEDGE));
+        auto_ptr<cms::Queue> queue(session->createQueue("testSessionCommitAfterConsumerClosed"));
+        auto_ptr<cms::MessageProducer> producer(session->createProducer(queue.get()));
+
+        auto_ptr<cms::Message> message(session->createTextMessage("Hello"));
+        producer->send(message.get());
+        producer->close();
+        session->close();
+    }
+
+    auto_ptr<cms::Session> session(connection->createSession(cms::Session::SESSION_TRANSACTED));
+    auto_ptr<cms::Queue> queue(session->createQueue("testSessionCommitAfterConsumerClosed"));
+    auto_ptr<cms::MessageConsumer> consumer(session->createConsumer(queue.get()));
+
+    connection->start();
+
+    auto_ptr<cms::Message> message(consumer->receive(5000));
+    CPPUNIT_ASSERT(message.get() != NULL);
+
+    consumer->close();
+    session->commit();
+}

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.h?rev=1494731&r1=1494730&r2=1494731&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/TransactionTest.h Wed Jun 19 18:29:46 2013
@@ -32,8 +32,8 @@ namespace test{
 
     public:
 
-        TransactionTest() {}
-        virtual ~TransactionTest() {}
+        TransactionTest();
+        virtual ~TransactionTest();
 
         virtual void setUp() {
             cmsProvider.reset(
@@ -45,6 +45,7 @@ namespace test{
         void testSendSessionClose();
         void testWithTTLSet();
         void testSendRollbackCommitRollback();
+        void testSessionCommitAfterConsumerClosed();
 
     };
 

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireTransactionTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireTransactionTest.h?rev=1494731&r1=1494730&r2=1494731&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireTransactionTest.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireTransactionTest.h Wed Jun 19 18:29:46 2013
@@ -31,6 +31,7 @@ namespace openwire{
         CPPUNIT_TEST( testSendRollback );
         CPPUNIT_TEST( testWithTTLSet );
         CPPUNIT_TEST( testSendRollbackCommitRollback );
+        CPPUNIT_TEST( testSessionCommitAfterConsumerClosed );
 //        CPPUNIT_TEST( testSendSessionClose );
         CPPUNIT_TEST_SUITE_END();