@Test public void shouldSerializeRowCorrectly() { final List columns = Arrays.asList(1511897796092L, 1L, "item_1", 10.0, Arrays.asList(100.0), Collections.singletonMap("key1", 100.0)); final GenericRow genericRow = new GenericRow(columns); final KsqlJsonSerializer ksqlJsonDeserializer = new KsqlJsonSerializer(orderSchema); final byte[] bytes = ksqlJsonDeserializer.serialize("t1", genericRow); final String jsonString = new String(bytes, StandardCharsets.UTF_8); assertThat("Incorrect serialization.", jsonString, equalTo( "{\"ORDERTIME\":1511897796092,\"ORDERID\":1,\"ITEMID\":\"item_1\",\"ORDERUNITS\":10.0,\"ARRAYCOL\":[100.0],\"MAPCOL\":{\"key1\":100.0}}")); }
@Test public void shouldHandleStruct() throws IOException { final KsqlJsonSerializer jsonSerializer = new KsqlJsonSerializer(getSchemaWithStruct()); final GenericRow genericRow = getGenericRow(); final byte[] bytes = jsonSerializer.serialize("", genericRow); final ObjectMapper objectMapper = new ObjectMapper(); final JsonNode jsonNode = objectMapper.readTree(bytes); assertThat(jsonNode.size(), equalTo(7)); assertThat(jsonNode.get("ordertime").asLong(), equalTo(genericRow.getColumns().get(0))); assertThat(jsonNode.get("itemid").get("NAME").asText(), equalTo("Item_10")); }
@Test public void shouldSerializeRowWithNull() { final List columns = Arrays.asList(1511897796092L, 1L, "item_1", 10.0, null, null); final GenericRow genericRow = new GenericRow(columns); final KsqlJsonSerializer ksqlJsonDeserializer = new KsqlJsonSerializer(orderSchema); final byte[] bytes = ksqlJsonDeserializer.serialize("t1", genericRow); final String jsonString = new String(bytes, StandardCharsets.UTF_8); assertThat("Incorrect serialization.", jsonString, equalTo( "{\"ORDERTIME\":1511897796092,\"ORDERID\":1,\"ITEMID\":\"item_1\",\"ORDERUNITS\":10.0,\"ARRAYCOL\":null,\"MAPCOL\":null}")); }