Add a test for the send of a MapMessage with an empty string in the values.
git-svn-id: https://svn.apache.org/repos/asf/activemq/activemq-cpp/trunk@967243 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.cpp b/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.cpp
index 166c8b3..44a98d4 100644
--- a/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.cpp
+++ b/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.cpp
@@ -63,3 +63,31 @@
CPPUNIT_ASSERT( recvMapMessage != NULL );
CPPUNIT_ASSERT( recvMapMessage->itemExists( "SomeKey" ) == false );
}
+
+////////////////////////////////////////////////////////////////////////////////
+void MapMessageTest::testMapWithEmptyStringValue() {
+
+ // Create CMS Object for Comms
+ cms::Session* session( cmsProvider->getSession() );
+ cms::MessageConsumer* consumer = cmsProvider->getConsumer();
+ cms::MessageProducer* producer = cmsProvider->getProducer();
+ producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT );
+
+ auto_ptr<cms::MapMessage> mapMessage( session->createMapMessage() );
+
+ mapMessage->setString("String1", "");
+ mapMessage->setString("String2", "value");
+
+ // Send some text messages
+ producer->send( mapMessage.get() );
+
+ auto_ptr<cms::Message> message( consumer->receive( 2000 ) );
+ CPPUNIT_ASSERT( message.get() != NULL );
+
+ cms::MapMessage* recvMapMessage = dynamic_cast<MapMessage*>( message.get() );
+ CPPUNIT_ASSERT( recvMapMessage != NULL );
+ CPPUNIT_ASSERT( recvMapMessage->itemExists( "String1" ) == true );
+ CPPUNIT_ASSERT( recvMapMessage->itemExists( "String2" ) == true );
+ CPPUNIT_ASSERT( recvMapMessage->itemExists( "String3" ) == false );
+ CPPUNIT_ASSERT( recvMapMessage->getString( "String2" ) == string( "value" ) );
+}
diff --git a/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.h b/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.h
index ab5ccab..1280965 100644
--- a/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.h
+++ b/activemq-cpp/src/test-integration/activemq/test/MapMessageTest.h
@@ -31,6 +31,7 @@
virtual ~MapMessageTest();
void testEmptyMapSendReceive();
+ void testMapWithEmptyStringValue();
};
diff --git a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireMapMessageTest.h b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireMapMessageTest.h
index 29f6f2b..62b71c8 100644
--- a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireMapMessageTest.h
+++ b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireMapMessageTest.h
@@ -29,6 +29,7 @@
CPPUNIT_TEST_SUITE( OpenwireMapMessageTest );
CPPUNIT_TEST( testEmptyMapSendReceive );
+ CPPUNIT_TEST( testMapWithEmptyStringValue );
CPPUNIT_TEST_SUITE_END();
public: