public static MessageKey getKeyForMeasurement( Class<? extends Measurement> measurementType) throws UnrecognizedMeasurementTypeException { if(!sMeasurementIdToClass.inverse().containsKey(measurementType)) { cacheMeasurementId(measurementType); } return new NamedVehicleMessage( sMeasurementIdToClass.inverse().get(measurementType)).getKey(); }
@Override public String toString() { return MoreObjects.toStringHelper(this) .add("timestamp", getTimestamp()) .add("name", getName()) .add("extras", getExtras()) .toString(); }
@Override public void writeToParcel(Parcel out, int flags) { super.writeToParcel(out, flags); out.writeValue(getValue()); }
@Test public void differentNameDoesntEqual() { NamedVehicleMessage anotherMessage = new NamedVehicleMessage("bar"); assertThat(message, not(equalTo(anotherMessage))); }
@Test public void keyNotNull() { assertThat(message.getKey(), notNullValue()); } }
protected NamedVehicleMessage(Parcel in) { readFromParcel(in); }
@Override public boolean equals(Object obj) { if(!super.equals(obj) || !(obj instanceof SimpleVehicleMessage)) { return false; } final SimpleVehicleMessage other = (SimpleVehicleMessage) obj; return mValue.equals(other.mValue); }
} else if (SimpleVehicleMessage.containsRequiredFields(fields)) { message = sGson.fromJson(root, SimpleVehicleMessage.class); } else if (NamedVehicleMessage.containsRequiredFields(fields)) { message = sGson.fromJson(root, NamedVehicleMessage.class); } else if (fields.contains(VehicleMessage.EXTRAS_KEY)) {
@Before public void setup() { message = new NamedVehicleMessage("foo"); }
@Override public void receive(VehicleMessage value) { receivedId = ((NamedVehicleMessage)value).getName(); } };
@Override public void readFromParcel(Parcel in) { super.readFromParcel(in); mValue = in.readValue(null); }
@Test(expected=SerializationException.class) public void serializeNamedMessageWithExtras() throws SerializationException { HashMap<String, Object> extras = new HashMap<>(); extras.put("foo", "bar"); extras.put("baz", 42.0); VehicleMessage message = new NamedVehicleMessage("foo"); message.setExtras(extras); BinaryFormatter.serialize(message); }
@Test public void keyMatches() { NamedVehicleMessage anotherMessage = new NamedVehicleMessage("foo"); assertThat(message.getKey(), equalTo(anotherMessage.getKey())); }
@Override public void writeToParcel(Parcel out, int flags) { super.writeToParcel(out, flags); out.writeString(getName()); }
@Test public void writeAndReadFromParcel() { Parcel parcel = Parcel.obtain(); message.writeToParcel(parcel, 0); // Reset parcel for reading parcel.setDataPosition(0); VehicleMessage createdFromParcel = VehicleMessage.CREATOR.createFromParcel(parcel); assertThat(createdFromParcel, instanceOf(NamedVehicleMessage.class)); assertEquals(message, createdFromParcel); }
@Test public void serializeNamedMessageWithExtras() { HashMap<String, Object> extras = new HashMap<>(); extras.put("foo", "bar"); extras.put("baz", 42.0); VehicleMessage message = new NamedVehicleMessage("foo"); message.setExtras(extras); serializeDeserializeAndCheckEqual(message); }
@Test public void getKeyForUnrecognizedMeasurementWithProperId() throws UnrecognizedMeasurementTypeException { assertThat(BaseMeasurement.getKeyForMeasurement(NewMeasurement.class), equalTo(new NamedVehicleMessage(NewMeasurement.ID).getKey())); }
private static BinaryMessages.SimpleMessage.Builder startBuildingSimple( BinaryMessages.VehicleMessage.Builder builder, NamedVehicleMessage message) { builder.setType(BinaryMessages.VehicleMessage.Type.SIMPLE); BinaryMessages.SimpleMessage.Builder messageBuilder = BinaryMessages.SimpleMessage.newBuilder(); messageBuilder.setName(message.getName()); return messageBuilder; }