You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2009/04/04 02:31:22 UTC
svn commit: r761846 - in
/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils:
OpenwireStringSupportTest.cpp OpenwireStringSupportTest.h
Author: tabish
Date: Sat Apr 4 00:31:22 2009
New Revision: 761846
URL: http://svn.apache.org/viewvc?rev=761846&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQCPP-232
Added the submitted unit test patch to provide more code coverage of the OpenWireStringSupport class.
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.cpp
activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.cpp?rev=761846&r1=761845&r2=761846&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.cpp Sat Apr 4 00:31:22 2009
@@ -27,11 +27,42 @@
using namespace std;
using namespace decaf;
using namespace decaf::io;
+using namespace decaf::lang;
using namespace activemq;
using namespace activemq::wireformat;
using namespace activemq::wireformat::openwire;
using namespace activemq::wireformat::openwire::utils;
+
+////////////////////////////////////////////////////////////////////////////////
+void OpenwireStringSupportTest::testHelper( unsigned char* input, int inputLength,
+ unsigned char* output, int outputLength,
+ bool negative ) {
+ try {
+
+ ByteArrayInputStream bytesIn;
+ ByteArrayOutputStream bytesOut;
+
+ DataInputStream dataIn( &bytesIn );
+ DataOutputStream dataOut( &bytesOut );
+
+ bytesIn.setByteArray( input, inputLength );
+
+ string resultStr = OpenwireStringSupport::readString( dataIn );
+ if( !negative ) {
+ CPPUNIT_ASSERT( resultStr == std::string( (char*)output, outputLength ) );
+
+ OpenwireStringSupport::writeString( dataOut, &resultStr );
+ CPPUNIT_ASSERT( bytesOut.toString() == std::string( (char*)input, inputLength ) );
+ } else {
+ CPPUNIT_ASSERT( 0 );
+ }
+
+ } catch( Exception& e ) {
+ CPPUNIT_ASSERT( negative );
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////
void OpenwireStringSupportTest::test()
{
@@ -51,4 +82,53 @@
string resultStr = OpenwireStringSupport::readString( dataIn );
CPPUNIT_ASSERT( testStr == resultStr );
+
+ // Test data with 1-byte UTF8 encoding.
+ {
+ unsigned char input[] = {0x00, 0x0B, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64};
+ unsigned char output[] = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64};
+
+ testHelper( input, sizeof(input)/sizeof(unsigned char),
+ output, sizeof(output)/sizeof(unsigned char), false );
+ }
+
+ // Test data with 2-byte UT8 encoding.
+ {
+ unsigned char input[] = {0x00, 0x04, 0xC2, 0xA9, 0xC3, 0xA6};
+ unsigned char output[] = {0xA9, 0xE6};
+ testHelper( input, sizeof(input)/sizeof(unsigned char),
+ output, sizeof(output)/sizeof(unsigned char), false );
+ }
+
+ // Test data with value greater than 255 in 2-byte encoding.
+ // Expect : IO Exception
+ {
+ unsigned char input[] = {0x00, 0x04, 0xC8, 0xA9, 0xC3, 0xA6};
+ testHelper( input, sizeof(input)/sizeof(unsigned char), NULL, 0, true );
+ }
+
+ // Test data with value greater than 255 in 3-byte encoding.
+ // Expect : IO Exception
+ {
+ unsigned char input[] = {0x00, 0x05, 0xE8, 0xA8, 0xA9, 0xC3, 0xA6};
+ testHelper( input, sizeof(input)/sizeof(unsigned char), NULL, 0, true );
+ }
+
+ // Test data with 1-byte encoding with embedded NULL's.
+ {
+ unsigned char input[] = {0x00, 0x0D, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x00, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x00};
+ unsigned char output[] = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x00, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x00};
+
+ testHelper( input, sizeof(input)/sizeof(unsigned char),
+ output, sizeof(output)/sizeof(unsigned char), false );
+ }
+
+ // Test data with 1-byte and 2-byte encoding with embedded NULL's.
+ {
+ unsigned char input[] = {0x00, 0x11, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x00, 0xC2, 0xA9, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x00, 0xC3, 0xA6};
+ unsigned char output[] = {0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x00, 0xA9, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x00, 0xE6};
+
+ testHelper( input, sizeof(input)/sizeof(unsigned char),
+ output, sizeof(output)/sizeof(unsigned char), false );
+ }
}
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h?rev=761846&r1=761845&r2=761846&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/wireformat/openwire/utils/OpenwireStringSupportTest.h Sat Apr 4 00:31:22 2009
@@ -39,6 +39,9 @@
void test();
+ void testHelper( unsigned char* input, int inputLength,
+ unsigned char* output, int outputLength, bool negative );
+
};
}}}}