diff options
author | Gordon Sim <gsim@apache.org> | 2009-11-23 12:50:58 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2009-11-23 12:50:58 +0000 |
commit | 08d70d83487d6c39cdef50f9c90e001787849286 (patch) | |
tree | a71b400af2659b03eb5aeb98cfce870495b14382 /cpp/src/tests/MessagingSessionTests.cpp | |
parent | 86fab2271457603040d420a6af7f88f2503cba77 (diff) | |
download | qpid-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.cpp | 27 |
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() |