summaryrefslogtreecommitdiff
path: root/cpp/src/tests/TxBufferTest.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-05-30 08:13:21 +0000
committerGordon Sim <gsim@apache.org>2008-05-30 08:13:21 +0000
commit5d2f67ee3918516feebc4994d5b21a893ef97a5b (patch)
tree4c13e462ca37f7ce5e8a9564cec5f1e92410e5ab /cpp/src/tests/TxBufferTest.cpp
parent162cb3879f3e25cbd13a777b40e374196ab531c9 (diff)
downloadqpid-python-5d2f67ee3918516feebc4994d5b21a893ef97a5b.tar.gz
Convert remaining cppunit tests to boost test framework to reduce dependencies.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@661587 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/TxBufferTest.cpp')
-rw-r--r--cpp/src/tests/TxBufferTest.cpp303
1 files changed, 147 insertions, 156 deletions
diff --git a/cpp/src/tests/TxBufferTest.cpp b/cpp/src/tests/TxBufferTest.cpp
index afe6d2b0fc..3d6a12cacc 100644
--- a/cpp/src/tests/TxBufferTest.cpp
+++ b/cpp/src/tests/TxBufferTest.cpp
@@ -19,7 +19,7 @@
*
*/
#include "qpid/broker/TxBuffer.h"
-#include "qpid_test_plugin.h"
+#include "unit_test.h"
#include <iostream>
#include <vector>
#include "TxMocks.h"
@@ -27,159 +27,150 @@
using namespace qpid::broker;
using boost::static_pointer_cast;
-class TxBufferTest : public CppUnit::TestCase
-{
- CPPUNIT_TEST_SUITE(TxBufferTest);
- CPPUNIT_TEST(testCommitLocal);
- CPPUNIT_TEST(testFailOnCommitLocal);
- CPPUNIT_TEST(testPrepare);
- CPPUNIT_TEST(testFailOnPrepare);
- CPPUNIT_TEST(testRollback);
- CPPUNIT_TEST(testBufferIsClearedAfterRollback);
- CPPUNIT_TEST(testBufferIsClearedAfterCommit);
- CPPUNIT_TEST_SUITE_END();
-
- public:
-
- void testCommitLocal(){
- MockTransactionalStore store;
- store.expectBegin().expectCommit();
-
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectPrepare().expectCommit();
- MockTxOp::shared_ptr opB(new MockTxOp());
- opB->expectPrepare().expectPrepare().expectCommit().expectCommit();//opB enlisted twice to test relative order
- MockTxOp::shared_ptr opC(new MockTxOp());
- opC->expectPrepare().expectCommit();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
- buffer.enlist(static_pointer_cast<TxOp>(opB));//opB enlisted twice
- buffer.enlist(static_pointer_cast<TxOp>(opC));
-
- CPPUNIT_ASSERT(buffer.commitLocal(&store));
- store.check();
- CPPUNIT_ASSERT(store.isCommitted());
- opA->check();
- opB->check();
- opC->check();
- }
-
- void testFailOnCommitLocal(){
- MockTransactionalStore store;
- store.expectBegin().expectAbort();
-
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectPrepare().expectRollback();
- MockTxOp::shared_ptr opB(new MockTxOp(true));
- opB->expectPrepare().expectRollback();
- MockTxOp::shared_ptr opC(new MockTxOp());//will never get prepare as b will fail
- opC->expectRollback();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
- buffer.enlist(static_pointer_cast<TxOp>(opC));
-
- CPPUNIT_ASSERT(!buffer.commitLocal(&store));
- CPPUNIT_ASSERT(store.isAborted());
- store.check();
- opA->check();
- opB->check();
- opC->check();
- }
-
- void testPrepare(){
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectPrepare();
- MockTxOp::shared_ptr opB(new MockTxOp());
- opB->expectPrepare();
- MockTxOp::shared_ptr opC(new MockTxOp());
- opC->expectPrepare();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
- buffer.enlist(static_pointer_cast<TxOp>(opC));
-
- CPPUNIT_ASSERT(buffer.prepare(0));
- opA->check();
- opB->check();
- opC->check();
- }
-
- void testFailOnPrepare(){
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectPrepare();
- MockTxOp::shared_ptr opB(new MockTxOp(true));
- opB->expectPrepare();
- MockTxOp::shared_ptr opC(new MockTxOp());//will never get prepare as b will fail
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
- buffer.enlist(static_pointer_cast<TxOp>(opC));
-
- CPPUNIT_ASSERT(!buffer.prepare(0));
- opA->check();
- opB->check();
- opC->check();
- }
-
- void testRollback(){
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectRollback();
- MockTxOp::shared_ptr opB(new MockTxOp(true));
- opB->expectRollback();
- MockTxOp::shared_ptr opC(new MockTxOp());
- opC->expectRollback();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
- buffer.enlist(static_pointer_cast<TxOp>(opC));
-
- buffer.rollback();
- opA->check();
- opB->check();
- opC->check();
- }
-
- void testBufferIsClearedAfterRollback(){
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectRollback();
- MockTxOp::shared_ptr opB(new MockTxOp());
- opB->expectRollback();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
-
- buffer.rollback();
- buffer.commit();//second call should not reach ops
- opA->check();
- opB->check();
- }
-
- void testBufferIsClearedAfterCommit(){
- MockTxOp::shared_ptr opA(new MockTxOp());
- opA->expectCommit();
- MockTxOp::shared_ptr opB(new MockTxOp());
- opB->expectCommit();
-
- TxBuffer buffer;
- buffer.enlist(static_pointer_cast<TxOp>(opA));
- buffer.enlist(static_pointer_cast<TxOp>(opB));
-
- buffer.commit();
- buffer.rollback();//second call should not reach ops
- opA->check();
- opB->check();
- }
-};
-
-// Make this test suite a plugin.
-CPPUNIT_PLUGIN_IMPLEMENT();
-CPPUNIT_TEST_SUITE_REGISTRATION(TxBufferTest);
+QPID_AUTO_TEST_SUITE(TxBufferTestSuite)
+QPID_AUTO_TEST_CASE(testCommitLocal)
+{
+ MockTransactionalStore store;
+ store.expectBegin().expectCommit();
+
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectPrepare().expectCommit();
+ MockTxOp::shared_ptr opB(new MockTxOp());
+ opB->expectPrepare().expectPrepare().expectCommit().expectCommit();//opB enlisted twice to test relative order
+ MockTxOp::shared_ptr opC(new MockTxOp());
+ opC->expectPrepare().expectCommit();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));//opB enlisted twice
+ buffer.enlist(static_pointer_cast<TxOp>(opC));
+
+ BOOST_CHECK(buffer.commitLocal(&store));
+ store.check();
+ BOOST_CHECK(store.isCommitted());
+ opA->check();
+ opB->check();
+ opC->check();
+}
+
+QPID_AUTO_TEST_CASE(testFailOnCommitLocal)
+{
+ MockTransactionalStore store;
+ store.expectBegin().expectAbort();
+
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectPrepare().expectRollback();
+ MockTxOp::shared_ptr opB(new MockTxOp(true));
+ opB->expectPrepare().expectRollback();
+ MockTxOp::shared_ptr opC(new MockTxOp());//will never get prepare as b will fail
+ opC->expectRollback();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+ buffer.enlist(static_pointer_cast<TxOp>(opC));
+
+ BOOST_CHECK(!buffer.commitLocal(&store));
+ BOOST_CHECK(store.isAborted());
+ store.check();
+ opA->check();
+ opB->check();
+ opC->check();
+}
+
+QPID_AUTO_TEST_CASE(testPrepare)
+{
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectPrepare();
+ MockTxOp::shared_ptr opB(new MockTxOp());
+ opB->expectPrepare();
+ MockTxOp::shared_ptr opC(new MockTxOp());
+ opC->expectPrepare();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+ buffer.enlist(static_pointer_cast<TxOp>(opC));
+
+ BOOST_CHECK(buffer.prepare(0));
+ opA->check();
+ opB->check();
+ opC->check();
+}
+
+QPID_AUTO_TEST_CASE(testFailOnPrepare)
+{
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectPrepare();
+ MockTxOp::shared_ptr opB(new MockTxOp(true));
+ opB->expectPrepare();
+ MockTxOp::shared_ptr opC(new MockTxOp());//will never get prepare as b will fail
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+ buffer.enlist(static_pointer_cast<TxOp>(opC));
+
+ BOOST_CHECK(!buffer.prepare(0));
+ opA->check();
+ opB->check();
+ opC->check();
+}
+
+QPID_AUTO_TEST_CASE(testRollback)
+{
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectRollback();
+ MockTxOp::shared_ptr opB(new MockTxOp(true));
+ opB->expectRollback();
+ MockTxOp::shared_ptr opC(new MockTxOp());
+ opC->expectRollback();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+ buffer.enlist(static_pointer_cast<TxOp>(opC));
+
+ buffer.rollback();
+ opA->check();
+ opB->check();
+ opC->check();
+}
+
+QPID_AUTO_TEST_CASE(testBufferIsClearedAfterRollback)
+{
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectRollback();
+ MockTxOp::shared_ptr opB(new MockTxOp());
+ opB->expectRollback();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+
+ buffer.rollback();
+ buffer.commit();//second call should not reach ops
+ opA->check();
+ opB->check();
+}
+
+QPID_AUTO_TEST_CASE(testBufferIsClearedAfterCommit)
+{
+ MockTxOp::shared_ptr opA(new MockTxOp());
+ opA->expectCommit();
+ MockTxOp::shared_ptr opB(new MockTxOp());
+ opB->expectCommit();
+
+ TxBuffer buffer;
+ buffer.enlist(static_pointer_cast<TxOp>(opA));
+ buffer.enlist(static_pointer_cast<TxOp>(opB));
+
+ buffer.commit();
+ buffer.rollback();//second call should not reach ops
+ opA->check();
+ opB->check();
+}
+
+QPID_AUTO_TEST_SUITE_END()