From cf713a59e2dade6b64ff20198b3ed543bed34026 Mon Sep 17 00:00:00 2001 From: Hallvard Traetteberg <hal@ntnu.no> Date: Thu, 10 Oct 2019 16:33:03 +0200 Subject: [PATCH] Should fix issue #13 --- .../java/simpleex/json/LatLongSerializer.java | 2 +- .../java/simpleex/json/LatLongsJsonTest.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/simpleexample2/core/src/main/java/simpleex/json/LatLongSerializer.java b/simpleexample2/core/src/main/java/simpleex/json/LatLongSerializer.java index d56f101..d4d1542 100644 --- a/simpleexample2/core/src/main/java/simpleex/json/LatLongSerializer.java +++ b/simpleexample2/core/src/main/java/simpleex/json/LatLongSerializer.java @@ -56,8 +56,8 @@ public class LatLongSerializer extends JsonSerializer<LatLong> { } jsonGen.writeEndArray(); } + jsonGen.writeEndObject(); } - jsonGen.writeEndObject(); } } diff --git a/simpleexample2/core/src/test/java/simpleex/json/LatLongsJsonTest.java b/simpleexample2/core/src/test/java/simpleex/json/LatLongsJsonTest.java index 4345ef6..cf1d8e9 100644 --- a/simpleexample2/core/src/test/java/simpleex/json/LatLongsJsonTest.java +++ b/simpleexample2/core/src/test/java/simpleex/json/LatLongsJsonTest.java @@ -1,5 +1,6 @@ package simpleex.json; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Arrays; import java.util.Iterator; @@ -59,6 +60,34 @@ public class LatLongsJsonTest { assertEqualsIgnoreWhitespace(expectedJson, actualJson); } + @Test + public void testLatLongsMetaDataSerialization() { + final LatLong latLong = latLong1(); + final MetaData metaData = latLong.getMetaData(); + metaData.addTags("aTag", "bTag"); + metaData.setProperty("aProperty", "aValue"); + final LatLongs latLongs = new LatLongs(latLong); + try { + final String actualJson = objectMapper.writeValueAsString(latLongs); + final String expectedJson = "[{\"latitude\":63.1,\"longitude\":12.3," + + "\"metaData\":{\"tags\":[\"aTag\",\"bTag\"],\"properties\":[{\"name\":\"aProperty\",\"value\":\"aValue\"}]}}]"; + assertEqualsIgnoreWhitespace(expectedJson, actualJson); + } catch (final JsonProcessingException e) { + Assert.fail(); + } catch (final Exception e) { + Assert.fail(); + } + } + + @Test + public void testLatLongsMetaDataDeserialization() throws Exception { + final String json = "[{\"latitude\":63.1,\"longitude\":12.3," + + "\"metaData\":{\"tags\":[\"aTag\",\"bTag\"],\"properties\":[{\"name\":\"aProperty\",\"value\":\"aValue\"}]}}]"; + final LatLongs latLongs = objectMapper.readValue(json, LatLongs.class); + Assert.assertEquals(1, latLongs.getLatLongCount()); + Assert.assertTrue(latLongs.getLatLong(0).hasMetaData()); + } + // relies on a certain order private void check(final Iterator<String> it, final String... ss) { final Iterator<String> it1 = Arrays.asList(ss).iterator(); -- GitLab