@Test(expected=UnrecognizedMessageTypeException.class) public void deserializeWellFormedButConfusedMessage() throws IOException, UnrecognizedMessageTypeException { // Build a simple message that's missing a name BinaryMessages.VehicleMessage.Builder builder = BinaryMessages.VehicleMessage.newBuilder(); builder.setType(BinaryMessages.VehicleMessage.Type.SIMPLE); BinaryMessages.SimpleMessage.Builder messageBuilder = BinaryMessages.SimpleMessage.newBuilder(); BinaryMessages.DynamicField.Builder fieldBuilder = BinaryMessages.DynamicField.newBuilder(); fieldBuilder.setType(BinaryMessages.DynamicField.Type.NUM); fieldBuilder.setNumericValue(42); messageBuilder.setValue(fieldBuilder); builder.setSimpleMessage(messageBuilder); BinaryMessages.VehicleMessage serialized = builder.build(); ByteArrayOutputStream output = new ByteArrayOutputStream(); serialized.writeTo(output); InputStream input = new ByteArrayInputStream(output.toByteArray()); BinaryFormatter.deserialize(input); }
@Test public void deserializeNoErrors() throws IOException, UnrecognizedMessageTypeException { BinaryMessages.VehicleMessage.Builder builder = BinaryMessages.VehicleMessage.newBuilder(); builder.setType(BinaryMessages.VehicleMessage.Type.SIMPLE); BinaryMessages.SimpleMessage.Builder messageBuilder = BinaryMessages.SimpleMessage.newBuilder(); messageBuilder.setName(messageName); BinaryMessages.DynamicField.Builder fieldBuilder = BinaryMessages.DynamicField.newBuilder(); fieldBuilder.setType(BinaryMessages.DynamicField.Type.NUM); fieldBuilder.setNumericValue(42); messageBuilder.setValue(fieldBuilder); builder.setSimpleMessage(messageBuilder); BinaryMessages.VehicleMessage serialized = builder.build(); ByteArrayOutputStream output = new ByteArrayOutputStream(); serialized.writeTo(output); InputStream input = new ByteArrayInputStream(output.toByteArray()); try { message = (SimpleVehicleMessage) BinaryFormatter.deserialize(input); } catch(UnrecognizedMessageTypeException e) {} assertEquals(message.getName(), messageName); assertEquals(message.getValue(), value); }
private static void serializeSimpleVehicleMessage(BinaryMessages.VehicleMessage.Builder builder, SimpleVehicleMessage message) { BinaryMessages.SimpleMessage.Builder messageBuilder = startBuildingSimple(builder, message); messageBuilder.setValue(buildDynamicField(message.getValue())); builder.setSimpleMessage(messageBuilder); }
private static void serializeEventedSimpleVehicleMessage(BinaryMessages.VehicleMessage.Builder builder, EventedSimpleVehicleMessage message) { BinaryMessages.SimpleMessage.Builder messageBuilder = startBuildingSimple(builder, message); messageBuilder.setValue(buildDynamicField(message.getValue())); messageBuilder.setEvent(buildDynamicField(message.getEvent())); builder.setSimpleMessage(messageBuilder); }