package com.openxc; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import com.openxc.measurements.*; import com.openxc.messages.SimpleVehicleMessage; @RunWith(RobolectricTestRunner.class) public class MeasurementsTest { Double value = Double.valueOf(42); private void checkDeserializeSerialize(Measurement measurement) throws UnrecognizedMeasurementTypeException, NoValueException { SimpleVehicleMessage message = measurement.toVehicleMessage(); Measurement deserializedMeasurement = BaseMeasurement.getMeasurementFromMessage(message); assertThat(deserializedMeasurement, instanceOf(measurement.getClass())); assertThat(deserializedMeasurement, equalTo(measurement)); } @Test public void buildVehicleSpeed() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new VehicleSpeed(value)); } @Test public void buildEngineSpeed() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new EngineSpeed(value)); } @Test public void buildSteeringWheelAngle() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new SteeringWheelAngle(value)); } @Test public void buildTorqueAtTransmission() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new TorqueAtTransmission(value)); } @Test public void buildOdometer() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new Odometer(value)); } @Test public void buildFuelLevel() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new FuelLevel(value)); } @Test public void buildFuelConsumed() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new FuelConsumed(value)); } @Test public void buildAcceleratorPedalPosition() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new AcceleratorPedalPosition(value)); } @Test public void buildLatitude() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new Latitude(value)); } @Test public void buildLongitude() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new Longitude(value)); } @Test public void buildWindshieldWiperStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new WindshieldWiperStatus(true)); } @Test public void buildParkingBrakeStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new ParkingBrakeStatus(true)); } @Test public void buildBrakePedalStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new BrakePedalStatus(true)); } @Test public void buildHeadlampStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new HeadlampStatus(false)); } @Test public void buildHighBeamStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new HighBeamStatus(true)); } @Test public void buildIgnitionStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new IgnitionStatus( IgnitionStatus.IgnitionPosition.RUN)); } @Test public void buildTurnSignalStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new TurnSignalStatus( TurnSignalStatus.TurnSignalPosition.LEFT)); } @Test public void buildTransmissionGearPosition() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new TransmissionGearPosition( TransmissionGearPosition.GearPosition.FIRST)); } @Test public void buildVehicleButtonEvent() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new VehicleButtonEvent("left", "idle")); } @Test public void buildVehicleDoorStatus() throws UnrecognizedMeasurementTypeException, NoValueException { checkDeserializeSerialize(new VehicleDoorStatus("driver", true)); } }