@Test
public void extractFieldsTest() {
String event = "{\"meta\":{\"name\":\"OneVehicleDynamicData\",\"timestamp\":" +
"\"2017-02-14T10:20:37.629Z\",\"grouping\":\"OneVehicleFinderData\"," +
"\"distribution_key\":\"665292e8-6a3b-4702-9666-b5624d6c8320\"},\"position\":{" +
"\"latitude\":48.042999267578125,\"longitude\":11.510173797607422,\"foo\":7}," +
"\"vehicle_id\":\"abcd\",\"fuel_level\":999," +
"\"charge_level\":50.0,\"odometer\":12345}";
JsonObject json = (JsonObject) new JsonParser().parse(event);
assertThat(jsonUtil.extractInteger(json, "odometer", -1)).isEqualTo(12345);
assertThat(jsonUtil.extractDouble(json, "charge_level", -1))
.isCloseTo(50, Percentage.withPercentage(1));
assertThat(jsonUtil.extractString(json, "vehicle_id")).isEqualTo("abcd");
assertThat(jsonUtil.extractInteger(json, "position.foo", -1)).isEqualTo(7);
assertThat(jsonUtil.extractDouble(json, "position.latitude", 0))
.isCloseTo(48.043, Percentage.withPercentage(1));
assertThat(jsonUtil.extractString(json, "meta.name")).isEqualTo("OneVehicleDynamicData");
}