@Override public void onLocationChanged(final Location location) { handleMessage(new SimpleVehicleMessage(Latitude.ID, location.getLatitude())); handleMessage(new SimpleVehicleMessage(Longitude.ID, location.getLongitude())); }
@Override public void onLocationChanged(Location location) { altitude = location.getAltitude(); heading = location.getBearing(); speed = location.getSpeed(); handleMessage(new SimpleVehicleMessage("phone_altitude", altitude)); handleMessage(new SimpleVehicleMessage("phone_heading", heading)); handleMessage(new SimpleVehicleMessage("phone_speed", speed)); } }
@Override public SimpleVehicleMessage toVehicleMessage() { return new SimpleVehicleMessage(mValue.getTimestamp(), getGenericName(), getSerializedValue()); }
@Before public void setUp() throws UnrecognizedMeasurementTypeException { message = new SimpleVehicleMessage(VehicleSpeed.ID, value); }
@Test public void testSerializedTimestamp() { String serialized = new String(JsonFormatter.serialize( new SimpleVehicleMessage( Long.valueOf(1332432977835L), messageName, value))); // The timestamp is represented intenally as milliseconds, in a long, // but when serialized it is a floating point in seconds. assertTrue(serialized.contains("1332432977.835")); }
@Test public void serializeSimpleMessage() { serializeDeserializeAndCheckEqual(new SimpleVehicleMessage("foo", "bar")); serializeDeserializeAndCheckEqual(new SimpleVehicleMessage("foo", false)); serializeDeserializeAndCheckEqual(new SimpleVehicleMessage("foo", 42.0)); }
@Test public void buildFromMessageWithInteger() throws UnrecognizedMeasurementTypeException, NoValueException { message = new SimpleVehicleMessage(VehicleSpeed.ID, Integer.valueOf(42)); VehicleSpeed measurement = new VehicleSpeed(value); Measurement deserializedMeasurement = BaseMeasurement.getMeasurementFromMessage(message); assertThat(deserializedMeasurement, instanceOf(VehicleSpeed.class)); VehicleSpeed vehicleSpeed = (VehicleSpeed) deserializedMeasurement; assertThat(vehicleSpeed, equalTo(measurement)); }
@Test public void receiveUnrecognizedSimpleMessage() throws DataSinkException, UnrecognizedMeasurementTypeException { SimpleVehicleMessage message = new SimpleVehicleMessage("foo", "bar"); sink.receive(message); }
@Test public void blankExtrasNotInOutput() { VehicleMessage message = new SimpleVehicleMessage(messageName, value); String serialized = new String(JsonFormatter.serialize(message)); assertFalse(serialized.contains("extras")); }
@Test public void testOutputFormat() throws JSONException, DataSinkException { VehicleMessage measurement = new SimpleVehicleMessage(measurementId, value); sink.receive(measurement); sink.flush(); JSONObject message; message = new JSONObject(outputString.toString()); assertTrue(message.getString("name").equals(measurementId)); assertTrue(message.getString("value").equals(value)); }
@Test(expected=UnrecognizedMeasurementTypeException.class) public void buildFromUnrecognizedMessage() throws NoValueException, UnrecognizedMeasurementTypeException { message = new SimpleVehicleMessage("foo", value); BaseMeasurement.getMeasurementFromMessage(message); }
@Test public void testReceiveValueOnly() throws DataSinkException { assertTrue(outputString.toString().indexOf(measurementId) == -1); sink.receive(new SimpleVehicleMessage(measurementId, value)); sink.flush(); assertTrue(outputString.toString().indexOf(measurementId) != -1); assertTrue(outputString.toString().indexOf(value) != -1); }
@Test public void differentValueDoesntEqual() { NamedVehicleMessage anotherMessage = new SimpleVehicleMessage( name, Double.valueOf(24)); assertFalse(message.equals(anotherMessage)); }
@Test public void valueAsBoolean() { message = new SimpleVehicleMessage(name, Boolean.valueOf(true)); assertEquals(message.getValueAsBoolean(), true); }
@Test public void getNamed() { String name = "foo"; String value = "value"; KeyedMessage message = new SimpleVehicleMessage(name, value); pipeline.receive(message); SimpleVehicleMessage retreived = (SimpleVehicleMessage) pipeline.get( message.getKey()); assertThat(retreived, notNullValue()); assertThat((String)retreived.getValue(), equalTo(value)); }
@Test public void testSerializeWithoutTimestamp() { VehicleMessage message = new SimpleVehicleMessage(messageName, value); message.untimestamp(); String serialized = new String(JsonFormatter.serialize(message)); assertFalse(serialized.contains("timestamp")); }
@Test public void valueAsString() { message = new SimpleVehicleMessage(name, "foo"); assertEquals(message.getValueAsString(), "foo"); }
@Test public void sameNameAndValueEquals() { SimpleVehicleMessage anotherMessage = new SimpleVehicleMessage( message.getTimestamp(), name, value); assertEquals(message, anotherMessage); }
@Test public void testSerialize() throws DataSinkException { KeyedMessage measurement = new SimpleVehicleMessage(measurementId, value); measurement.asKeyedMessage().getKey(); String serializedMessage = JsonFormatter.serialize(measurement); assertTrue(!serializedMessage.contains("mKey")); }
@Test public void receiveNewData() { pipeline.addSink(sink); pipeline.receive(new SimpleVehicleMessage("measurement", "value")); assertTrue(sink.received); }