summaryrefslogtreecommitdiff
path: root/cpp/src/tests
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
committerKim van der Riet <kpvdr@apache.org>2007-11-26 21:48:37 +0000
commitc598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 (patch)
tree8b3431841d1f18e0b21fc69f9a286851007b15c7 /cpp/src/tests
parentacde3eb25b94333bc7772133fa24441e1771a67c (diff)
downloadqpid-python-c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3.tar.gz
Switched all regular PersistentMessage* and PersistentMessage& to intrusive_ptr<PersistentMessage>, so as to hook into the refcount for a message while it is in the store.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598440 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests')
-rw-r--r--cpp/src/tests/MessageBuilderTest.cpp12
-rw-r--r--cpp/src/tests/TxAckTest.cpp8
-rw-r--r--cpp/src/tests/TxPublishTest.cpp19
3 files changed, 19 insertions, 20 deletions
diff --git a/cpp/src/tests/MessageBuilderTest.cpp b/cpp/src/tests/MessageBuilderTest.cpp
index 023aefc3fa..7335867140 100644
--- a/cpp/src/tests/MessageBuilderTest.cpp
+++ b/cpp/src/tests/MessageBuilderTest.cpp
@@ -38,7 +38,7 @@ class MessageBuilderTest : public CppUnit::TestCase
enum Op {STAGE=1, APPEND=2};
uint64_t id;
- PersistableMessage* expectedMsg;
+ intrusive_ptr<PersistableMessage> expectedMsg;
string expectedData;
std::list<Op> ops;
@@ -64,17 +64,17 @@ class MessageBuilderTest : public CppUnit::TestCase
ops.push_back(APPEND);
}
- void stage(PersistableMessage& msg)
+ void stage(intrusive_ptr<PersistableMessage>& msg)
{
checkExpectation(STAGE);
- CPPUNIT_ASSERT_EQUAL(expectedMsg, &msg);
- msg.setPersistenceId(++id);
+ CPPUNIT_ASSERT_EQUAL(expectedMsg, msg);
+ msg->setPersistenceId(++id);
}
- void appendContent(const PersistableMessage& msg, const string& data)
+ void appendContent(intrusive_ptr<const PersistableMessage>& msg, const string& data)
{
checkExpectation(APPEND);
- CPPUNIT_ASSERT_EQUAL((const PersistableMessage*) expectedMsg, &msg);
+ CPPUNIT_ASSERT_EQUAL(static_pointer_cast<const PersistableMessage>(expectedMsg), msg);
CPPUNIT_ASSERT_EQUAL(expectedData, data);
}
diff --git a/cpp/src/tests/TxAckTest.cpp b/cpp/src/tests/TxAckTest.cpp
index bcf422e706..1451fb65b6 100644
--- a/cpp/src/tests/TxAckTest.cpp
+++ b/cpp/src/tests/TxAckTest.cpp
@@ -39,11 +39,11 @@ class TxAckTest : public CppUnit::TestCase
class TestMessageStore : public NullMessageStore
{
public:
- vector<PersistableMessage*> dequeued;
+ vector<intrusive_ptr<PersistableMessage> > dequeued;
- void dequeue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& /*queue*/)
+ void dequeue(TransactionContext*, intrusive_ptr<PersistableMessage>& msg, const PersistableQueue& /*queue*/)
{
- dequeued.push_back(&msg);
+ dequeued.push_back(msg);
}
TestMessageStore() : NullMessageStore() {}
@@ -97,7 +97,7 @@ public:
CPPUNIT_ASSERT_EQUAL((size_t) 10, deliveries.size());
int dequeued[] = {0, 1, 2, 3, 4, 6, 8};
for (int i = 0; i < 7; i++) {
- CPPUNIT_ASSERT_EQUAL((PersistableMessage*) messages[dequeued[i]].get(), store.dequeued[i]);
+ CPPUNIT_ASSERT_EQUAL(static_pointer_cast<PersistableMessage>(messages[dequeued[i]]), store.dequeued[i]);
}
}
diff --git a/cpp/src/tests/TxPublishTest.cpp b/cpp/src/tests/TxPublishTest.cpp
index b969598f1d..c9da9762ec 100644
--- a/cpp/src/tests/TxPublishTest.cpp
+++ b/cpp/src/tests/TxPublishTest.cpp
@@ -36,17 +36,17 @@ using namespace qpid::framing;
class TxPublishTest : public CppUnit::TestCase
{
- typedef std::pair<string, PersistableMessage*> msg_queue_pair;
+ typedef std::pair<string, intrusive_ptr<PersistableMessage> > msg_queue_pair;
class TestMessageStore : public NullMessageStore
{
public:
vector<msg_queue_pair> enqueued;
- void enqueue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& queue)
+ void enqueue(TransactionContext*, intrusive_ptr<PersistableMessage>& msg, const PersistableQueue& queue)
{
- msg.enqueueComplete();
- enqueued.push_back(msg_queue_pair(queue.getName(), &msg));
+ msg->enqueueComplete();
+ enqueued.push_back(msg_queue_pair(queue.getName(), msg));
}
//dont care about any of the other methods:
@@ -81,16 +81,15 @@ public:
void testPrepare()
{
+ intrusive_ptr<PersistableMessage> pmsg = static_pointer_cast<PersistableMessage>(msg);
//ensure messages are enqueued in store
op.prepare(0);
CPPUNIT_ASSERT_EQUAL((size_t) 2, store.enqueued.size());
CPPUNIT_ASSERT_EQUAL(string("queue1"), store.enqueued[0].first);
- CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[0].second);
+ CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[0].second);
CPPUNIT_ASSERT_EQUAL(string("queue2"), store.enqueued[1].first);
- CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[1].second);
- CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg.get())->isEnqueueComplete());
-
-
+ CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[1].second);
+ CPPUNIT_ASSERT_EQUAL( true, ( static_pointer_cast<PersistableMessage>(msg))->isEnqueueComplete());
}
void testCommit()
@@ -101,7 +100,7 @@ public:
CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue1->getMessageCount());
intrusive_ptr<Message> msg_dequeue = queue1->dequeue().payload;
- CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg_dequeue.get())->isEnqueueComplete());
+ CPPUNIT_ASSERT_EQUAL( true, (static_pointer_cast<PersistableMessage>(msg_dequeue))->isEnqueueComplete());
CPPUNIT_ASSERT_EQUAL(msg, msg_dequeue);
CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue2->getMessageCount());