summaryrefslogtreecommitdiff
path: root/cpp/src/tests/MessagingSessionTests.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-11-23 12:50:58 +0000
committerGordon Sim <gsim@apache.org>2009-11-23 12:50:58 +0000
commit08d70d83487d6c39cdef50f9c90e001787849286 (patch)
treea71b400af2659b03eb5aeb98cfce870495b14382 /cpp/src/tests/MessagingSessionTests.cpp
parent86fab2271457603040d420a6af7f88f2503cba77 (diff)
downloadqpid-python-08d70d83487d6c39cdef50f9c90e001787849286.tar.gz
QPID-664: Allow session to be specified as transactional; add basic test of transaction implementation.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@883325 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/MessagingSessionTests.cpp')
-rw-r--r--cpp/src/tests/MessagingSessionTests.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/cpp/src/tests/MessagingSessionTests.cpp b/cpp/src/tests/MessagingSessionTests.cpp
index 07112f52dc..4125c51698 100644
--- a/cpp/src/tests/MessagingSessionTests.cpp
+++ b/cpp/src/tests/MessagingSessionTests.cpp
@@ -745,6 +745,33 @@ QPID_AUTO_TEST_CASE(testGetConnectionFromSession)
BOOST_CHECK_EQUAL(out.getContent(), in.getContent());
}
+QPID_AUTO_TEST_CASE(testTx)
+{
+ QueueFixture fix;
+ Session ssn1 = fix.connection.newSession(true);
+ Session ssn2 = fix.connection.newSession(true);
+ Sender sender1 = ssn1.createSender(fix.queue);
+ Sender sender2 = ssn2.createSender(fix.queue);
+ Receiver receiver1 = ssn1.createReceiver(fix.queue);
+ Receiver receiver2 = ssn2.createReceiver(fix.queue);
+ Message in;
+
+ send(sender1, 5, 1, "A");
+ send(sender2, 5, 1, "B");
+ ssn2.commit();
+ receive(receiver1, 5, 1, "B");//(only those from sender2 should be received)
+ BOOST_CHECK(!receiver1.fetch(in, 0));//check there are no more messages
+ ssn1.rollback();
+ receive(receiver2, 5, 1, "B");
+ BOOST_CHECK(!receiver2.fetch(in, 0));//check there are no more messages
+ ssn2.rollback();
+ receive(receiver1, 5, 1, "B");
+ BOOST_CHECK(!receiver1.fetch(in, 0));//check there are no more messages
+ ssn1.commit();
+ //check neither receiver gets any more messages:
+ BOOST_CHECK(!receiver1.fetch(in, 0));
+ BOOST_CHECK(!receiver2.fetch(in, 0));
+}
QPID_AUTO_TEST_SUITE_END()