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();