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: