diff --git a/src/test/java/com/gotocompany/firehose/serializer/TypecastedJsonSerializerTest.java b/src/test/java/com/gotocompany/firehose/serializer/TypecastedJsonSerializerTest.java index eb42def3b..3d96fc578 100644 --- a/src/test/java/com/gotocompany/firehose/serializer/TypecastedJsonSerializerTest.java +++ b/src/test/java/com/gotocompany/firehose/serializer/TypecastedJsonSerializerTest.java @@ -96,6 +96,18 @@ public void serializeShouldReturnMessageAsItIsWhenJsonPathConfigurationDoesNotMa Assertions.assertEquals(JsonPath.parse(DEFAULT_JSON_MESSAGE).jsonString(), JsonPath.parse(result).jsonString()); } + @Test + public void serializeShouldThrowNumberFormatExceptionWhenPayloadTypecastIsUnparseable() { + String payload = "{\"key\": \"value\", \"long\":\"1234568129012312\",\"nested\": {\"int\": \"1234\"}, \"double\": \"12.1\"}"; + String parameters = "[{\"jsonPath\": \"$.key\", \"type\": \"INTEGER\"}]"; + Map> property = serializerConfigConverter.convert(null, parameters); + Mockito.when(serializerConfig.getJsonTypecastMapping()).thenReturn(property); + Mockito.when(messageSerializer.serialize(Mockito.any())).thenReturn(payload); + + Assertions.assertThrows(NumberFormatException.class, + () -> typecastedJsonSerializer.serialize(buildMessage("key", DEFAULT_JSON_MESSAGE))); + } + private Message buildMessage(String key, String payload) { return new Message(