From 87aa4db83f1a7c2ffbdf168a7c5b942cb5d56a4a Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 30 Mar 2016 10:33:29 +0000 Subject: QPID-7134: ensure content object is reset when bytes are set git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1737093 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/tests/MessagingSessionTests.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'qpid/cpp/src/tests') diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp index 6af988e1cc..3c882b6028 100644 --- a/qpid/cpp/src/tests/MessagingSessionTests.cpp +++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp @@ -1508,6 +1508,30 @@ QPID_AUTO_TEST_CASE(testResendEmpty) BOOST_CHECK_EQUAL(in.getContent(), std::string()); } +QPID_AUTO_TEST_CASE(testResendMapAsString) +{ + QueueFixture fix; + Sender sender = fix.session.createSender(fix.queue); + Message out; + qpid::types::Variant::Map content; + content["foo"] = "bar"; + encode(content, out); + sender.send(out); + + Receiver receiver = fix.session.createReceiver(fix.queue); + Message in = receiver.fetch(Duration::SECOND * 5); + fix.session.acknowledge(); + BOOST_CHECK_EQUAL(in.getContent(), out.getContent()); + //change content and resend + std::string newContent("something random"); + in.setContent(newContent); + in.setContentType(std::string());//it is no longer a map + sender.send(in); + in = receiver.fetch(Duration::SECOND * 5); + fix.session.acknowledge(); + BOOST_CHECK_EQUAL(in.getContent(), newContent); +} + QPID_AUTO_TEST_SUITE_END() }} // namespace qpid::tests -- cgit v1.2.1