diff options
author | Gordon Sim <gsim@apache.org> | 2006-12-11 10:44:03 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2006-12-11 10:44:03 +0000 |
commit | f71a9c37caec4b1282f362ef4276bac740e28d8d (patch) | |
tree | eb71bd02eb1fa2e1fbe85b2658990a9e95cf4795 /cpp/tests/TxPublishTest.cpp | |
parent | a52120056649103af256f1f34b5bc574582a7d96 (diff) | |
download | qpid-python-f71a9c37caec4b1282f362ef4276bac740e28d8d.tar.gz |
Allow xid to be associated with publication and acknowledgements.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@485594 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/tests/TxPublishTest.cpp')
-rw-r--r-- | cpp/tests/TxPublishTest.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/cpp/tests/TxPublishTest.cpp b/cpp/tests/TxPublishTest.cpp index d33d84ec6e..3542e08f45 100644 --- a/cpp/tests/TxPublishTest.cpp +++ b/cpp/tests/TxPublishTest.cpp @@ -34,15 +34,22 @@ using namespace qpid::framing; class TxPublishTest : public CppUnit::TestCase { + struct Triple + { + string first; + Message* second; + const string* third; + }; class TestMessageStore : public NullMessageStore { public: - vector< pair<string, Message*> > enqueued; + vector<Triple> enqueued; - void enqueue(TransactionContext*, Message* const msg, const Queue& queue, const string * const /*xid*/) + void enqueue(TransactionContext*, Message* const msg, const Queue& queue, const string * const xid) { - enqueued.push_back(pair<string, Message*>(queue.getName(),msg)); + Triple args = {queue.getName(), msg, xid}; + enqueued.push_back(args); } //dont care about any of the other methods: @@ -52,6 +59,7 @@ class TxPublishTest : public CppUnit::TestCase CPPUNIT_TEST_SUITE(TxPublishTest); CPPUNIT_TEST(testPrepare); + CPPUNIT_TEST(testPrepare2pc); CPPUNIT_TEST(testCommit); CPPUNIT_TEST_SUITE_END(); @@ -61,14 +69,14 @@ class TxPublishTest : public CppUnit::TestCase Queue::shared_ptr queue2; Message::shared_ptr const msg; TxPublish op; - + string xid; public: TxPublishTest() : queue1(new Queue("queue1", false, &store, 0)), queue2(new Queue("queue2", false, &store, 0)), msg(new Message(0, "exchange", "routing_key", false, false)), - op(msg) + op(msg, &xid) { msg->setHeader(AMQHeaderBody::shared_ptr(new AMQHeaderBody(BASIC))); msg->getHeaderProperties()->setDeliveryMode(PERSISTENT); @@ -87,6 +95,15 @@ public: CPPUNIT_ASSERT_EQUAL(msg.get(), store.enqueued[1].second); } + void testPrepare2pc() + { + xid = "abcde"; + const string expected(xid); + testPrepare(); + CPPUNIT_ASSERT_EQUAL(expected, *store.enqueued[0].third); + CPPUNIT_ASSERT_EQUAL(expected, *store.enqueued[1].third); + } + void testCommit() { //ensure messages are delivered to queue |