void ConnectionIdMarshallerTest::testTightMarshal() { ConnectionIdMarshaller marshaller; Properties props; OpenWireFormat openWireFormat( props ); // Configure for this test. openWireFormat.setVersion( 6 ); openWireFormat.setTightEncodingEnabled( true ); ConnectionId outCommand; ConnectionId inCommand; try { // Marshal the dataStructure to a byte array. ByteArrayOutputStream baos; DataOutputStream dataOut( &baos ); // Phase 1 - count the size int size = 1; BooleanStream bs; size += marshaller.tightMarshal1( &openWireFormat, &outCommand, &bs ); size += bs.marshalledSize(); // Phase 2 - marshal dataOut.writeByte( outCommand.getDataStructureType() ); bs.marshal( &dataOut ); marshaller.tightMarshal2( &openWireFormat, &outCommand, &dataOut, &bs ); // Now read it back in and make sure it's all right. std::pair<const unsigned char*, int> array = baos.toByteArray(); ByteArrayInputStream bais( array.first, array.second, true ); DataInputStream dataIn( &bais ); unsigned char dataType = dataIn.readByte(); CPPUNIT_ASSERT( dataType == outCommand.getDataStructureType() ); bs.clear(); bs.unmarshal( &dataIn ); marshaller.tightUnmarshal( &openWireFormat, &inCommand, &dataIn, &bs ); CPPUNIT_ASSERT( inCommand.equals( &outCommand ) == true ); } catch( ActiveMQException& e ) { e.printStackTrace(); CPPUNIT_ASSERT( false ); } catch( ... ) { CPPUNIT_ASSERT( false ); } }
void ConnectionIdMarshallerTest::test() { ConnectionIdMarshaller myMarshaller; ConnectionId myCommand; ConnectionId* myCommand2; CPPUNIT_ASSERT( myMarshaller.getDataStructureType() == myCommand.getDataStructureType() ); myCommand2 = dynamic_cast<ConnectionId*>( myMarshaller.createObject() ); CPPUNIT_ASSERT( myCommand2 != NULL ); delete myCommand2; }
void ConnectionIdMarshallerTest::testLooseMarshal() { ConnectionIdMarshaller marshaller; Properties props; OpenWireFormat openWireFormat( props ); // Configure for this test. openWireFormat.setVersion( 9 ); openWireFormat.setTightEncodingEnabled( false ); ConnectionId outCommand; ConnectionId inCommand; try { // Marshal the dataStructure to a byte array. ByteArrayOutputStream baos; DataOutputStream dataOut( &baos ); dataOut.writeByte( outCommand.getDataStructureType() ); marshaller.looseMarshal( &openWireFormat, &outCommand, &dataOut ); // Now read it back in and make sure it's all right. std::pair<const unsigned char*, int> array = baos.toByteArray(); ByteArrayInputStream bais( array.first, array.second, true ); DataInputStream dataIn( &bais ); unsigned char dataType = dataIn.readByte(); CPPUNIT_ASSERT( dataType == outCommand.getDataStructureType() ); marshaller.looseUnmarshal( &openWireFormat, &inCommand, &dataIn ); CPPUNIT_ASSERT( inCommand.equals( (DataStructure*) &outCommand ) == true ); } catch( ActiveMQException& e ) { e.printStackTrace(); CPPUNIT_ASSERT( false ); } catch( ... ) { CPPUNIT_ASSERT( false ); } }