void ActiveMQMapMessageTest::testWriteOnlyBody() { ActiveMQMapMessage msg; std::vector<unsigned char> buffer1(1); std::vector<unsigned char> buffer2(2); msg.setReadOnlyBody( false ); msg.setBoolean( "boolean", true ); msg.setByte( "byte", (unsigned char)1 ); msg.setBytes( "bytes", buffer1 ); msg.setBytes( "bytes2", buffer2 ); msg.setChar( "char", 'a' ); msg.setDouble( "double", 1.5 ); msg.setFloat( "float", 1.5f ); msg.setInt( "int", 1 ); msg.setLong( "long", 1 ); msg.setShort( "short", (short)1 ); msg.setString( "string", "string" ); msg.setReadOnlyBody( true ); msg.getBoolean( "boolean" ); msg.getByte( "byte" ); msg.getBytes( "bytes" ); msg.getChar( "char" ); msg.getDouble( "double" ); msg.getFloat( "float" ); msg.getInt( "int" ); msg.getLong( "long" ); msg.getShort( "short" ); msg.getString( "string" ); }
void ActiveMQMapMessageTest::testClearBody() { ActiveMQMapMessage mapMessage; mapMessage.setString( "String", "String" ); mapMessage.clearBody(); CPPUNIT_ASSERT( !mapMessage.isReadOnlyBody() ); mapMessage.onSend(); mapMessage.setContent( mapMessage.getContent() ); CPPUNIT_ASSERT( mapMessage.itemExists( "String" ) == false ); mapMessage.clearBody(); mapMessage.setString( "String", "String" ); ActiveMQMapMessage mapMessage2; mapMessage2.copyDataStructure( &mapMessage ); CPPUNIT_ASSERT( mapMessage2.itemExists( "String" ) ); }
void ActiveMQMapMessageTest::testBytesConversion() { ActiveMQMapMessage msg; std::vector<unsigned char> buffer( 1 ); msg.setBoolean( "boolean", true ); msg.setByte( "byte", (unsigned char)1 ); msg.setBytes( "bytes", buffer ); msg.setChar( "char", 'a' ); msg.setDouble( "double", 1.5 ); msg.setFloat( "float", 1.5f ); msg.setInt( "int", 1 ); msg.setLong( "long", 1 ); msg.setShort( "short", (short)1 ); msg.setString( "string", "string" ); // Test with a 1Meg String std::string bigString; bigString.reserve( 1024 * 1024 ); for( int i = 0; i < 1024 * 1024; i++ ) { bigString += (char)( (int)'a' + i % 26 ); } msg.setString( "bigString", bigString ); ActiveMQMapMessage msg2; msg2.copyDataStructure( &msg ); CPPUNIT_ASSERT_EQUAL( msg2.getBoolean("boolean"), true); CPPUNIT_ASSERT_EQUAL( msg2.getByte( "byte" ), (unsigned char)1 ); CPPUNIT_ASSERT_EQUAL( msg2.getBytes( "bytes" ).size(), (std::size_t)1 ); CPPUNIT_ASSERT_EQUAL( msg2.getChar( "char" ), 'a' ); CPPUNIT_ASSERT_DOUBLES_EQUAL( msg2.getDouble( "double" ), 1.5, 0.01 ); CPPUNIT_ASSERT_DOUBLES_EQUAL( msg2.getFloat( "float" ), 1.5f, 0.01 ); CPPUNIT_ASSERT_EQUAL( msg2.getInt( "int" ), 1 ); CPPUNIT_ASSERT_EQUAL( msg2.getLong( "long" ), 1LL ); CPPUNIT_ASSERT_EQUAL( msg2.getShort( "short" ), (short)1 ); CPPUNIT_ASSERT_EQUAL( msg2.getString( "string" ), std::string( "string" ) ); CPPUNIT_ASSERT_EQUAL( msg2.getString( "bigString" ), bigString ); }
void ActiveMQMapMessageTest::testItemExists() { ActiveMQMapMessage mapMessage; mapMessage.setString( "exists", "test" ); ActiveMQMapMessage mapMessage2; mapMessage2.copyDataStructure( &mapMessage ); CPPUNIT_ASSERT( mapMessage2.itemExists( "exists" ) ); CPPUNIT_ASSERT( !mapMessage2.itemExists( "doesntExist" ) ); }
void ActiveMQMapMessageTest::testGetBoolean() { ActiveMQMapMessage msg; msg.setBoolean( name, true ); msg.setReadOnlyBody( true ); CPPUNIT_ASSERT( msg.getBoolean( name ) ); msg.clearBody(); msg.setString( name, "true" ); ActiveMQMapMessage msg2; msg2.copyDataStructure( &msg ); CPPUNIT_ASSERT( msg2.getBoolean( name ) ); }
void ActiveMQMapMessageTest::testGetString() { ActiveMQMapMessage msg; try { std::string str = "test"; msg.setString( name, str ); ActiveMQMapMessage msg2; msg2.copyDataStructure( &msg ); CPPUNIT_ASSERT( msg2.getString( name ) == str ); } catch( CMSException& ex ) { ex.printStackTrace(); CPPUNIT_ASSERT( false ); } }
void ActiveMQMapMessageTest::testGetMapNames() { ActiveMQMapMessage msg; std::vector<unsigned char> bytes1( 3, 'a' ); std::vector<unsigned char> bytes2( 2, 'b' ); msg.setBoolean( "boolean", true ); msg.setByte( "byte", (unsigned char)1 ); msg.setBytes( "bytes1", bytes1 ); msg.setBytes( "bytes2", bytes2 ); msg.setChar( "char", 'a' ); msg.setDouble( "double", 1.5 ); msg.setFloat( "float", 1.5f ); msg.setInt( "int", 1 ); msg.setLong( "long", 1 ); msg.setShort( "short", (short)1 ); msg.setString( "string", "string" ); ActiveMQMapMessage msg2; msg2.copyDataStructure( &msg ); std::vector<std::string> mapNamesList = msg2.getMapNames(); CPPUNIT_ASSERT_EQUAL( (std::size_t)11, mapNamesList.size() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "boolean" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "byte" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "bytes1" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "bytes2" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "char" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "double" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "float" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "int" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "long" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "short" ) != mapNamesList.end() ); CPPUNIT_ASSERT( std::find( mapNamesList.begin(), mapNamesList.end(), "string" ) != mapNamesList.end() ); }
void ActiveMQMapMessageTest::testReadOnlyBody() { ActiveMQMapMessage msg; std::vector<unsigned char> buffer(2); msg.setBoolean( "boolean", true ); msg.setByte( "byte", (unsigned char)1 ); msg.setBytes( "bytes", buffer ); msg.setChar( "char", 'a' ); msg.setDouble( "double", 1.5 ); msg.setFloat( "float", 1.5f ); msg.setInt( "int", 1 ); msg.setLong( "long", 1 ); msg.setShort( "short", (short)1 ); msg.setString( "string", "string" ); msg.setReadOnlyBody( true ); try { msg.getBoolean( "boolean" ); msg.getByte( "byte" ); msg.getBytes( "bytes" ); msg.getChar( "char" ); msg.getDouble( "double" ); msg.getFloat( "float" ); msg.getInt( "int" ); msg.getLong( "long" ); msg.getShort( "short" ); msg.getString( "string" ); } catch( MessageNotReadableException& mnre ) { CPPUNIT_FAIL( "should be readable" ); } try { msg.setBoolean( "boolean", true ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setByte( "byte", (unsigned char)1 ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setBytes( "bytes", buffer ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setChar( "char", 'a' ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setDouble( "double", 1.5 ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setFloat( "float", 1.5f ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setInt( "int", 1 ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setLong( "long", 1 ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setShort( "short", (short)1 ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } try { msg.setString( "string", "string" ); CPPUNIT_FAIL( "should throw exception" ); } catch( MessageNotWriteableException& mnwe ) { } }