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::testGetShort() { ActiveMQMapMessage msg; try { msg.setShort( name, (short)1 ); ActiveMQMapMessage msg2; msg2.copyDataStructure( &msg ); CPPUNIT_ASSERT( msg2.getShort( name ) == (short)1 ); } catch( CMSException& ex ) { ex.printStackTrace(); CPPUNIT_ASSERT( false ); } }
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::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::test() { ActiveMQMapMessage myMessage; CPPUNIT_ASSERT( myMessage.getDataStructureType() == ActiveMQMapMessage::ID_ACTIVEMQMAPMESSAGE ); CPPUNIT_ASSERT( myMessage.getMapNames().size() == 0 ); CPPUNIT_ASSERT( myMessage.itemExists( "Something" ) == false ); std::vector<unsigned char> data; data.push_back( 2 ); data.push_back( 4 ); data.push_back( 8 ); data.push_back( 16 ); data.push_back( 32 ); myMessage.setBoolean( "boolean", false ); myMessage.setByte( "byte", 127 ); myMessage.setChar( "char", 'a' ); myMessage.setShort( "short", 32000 ); myMessage.setInt( "int", 6789999 ); myMessage.setLong( "long", 0xFFFAAA33345LL ); myMessage.setFloat( "float", 0.000012f ); myMessage.setDouble( "double", 64.54654 ); myMessage.setBytes( "bytes", data ); CPPUNIT_ASSERT( myMessage.getBoolean( "boolean" ) == false ); CPPUNIT_ASSERT( myMessage.getByte( "byte" ) == 127 ); CPPUNIT_ASSERT( myMessage.getChar( "char" ) == 'a' ); CPPUNIT_ASSERT( myMessage.getShort( "short" ) == 32000 ); CPPUNIT_ASSERT( myMessage.getInt( "int" ) == 6789999 ); CPPUNIT_ASSERT( myMessage.getLong( "long" ) == 0xFFFAAA33345LL ); CPPUNIT_ASSERT( myMessage.getFloat( "float" ) == 0.000012f ); CPPUNIT_ASSERT( myMessage.getDouble( "double" ) == 64.54654 ); CPPUNIT_ASSERT( myMessage.getBytes( "bytes" ) == data ); }
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 ) { } }