Repository: johnzon Updated Branches: refs/heads/master 9c90117ed -> 847a4268f
add tests for null values in arrays and lists Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/847a4268 Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/847a4268 Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/847a4268 Branch: refs/heads/master Commit: 847a4268fb95cb239e54fd955175ece800126945 Parents: 9c90117 Author: Mark Struberg <[email protected]> Authored: Wed Aug 29 21:07:18 2018 +0200 Committer: Mark Struberg <[email protected]> Committed: Wed Aug 29 21:07:18 2018 +0200 ---------------------------------------------------------------------- .../apache/johnzon/jsonb/JsonbWriteTest.java | 2 ++ .../apache/johnzon/jsonb/SerializerTest.java | 22 ++++++++++++++++++++ .../org/apache/johnzon/mapper/MapperTest.java | 21 +++++++++++++++++++ 3 files changed, 45 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/johnzon/blob/847a4268/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java ---------------------------------------------------------------------- diff --git a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java index f16e2c4..cec22a1 100644 --- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java +++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbWriteTest.java @@ -177,4 +177,6 @@ public class JsonbWriteTest { this.date = value; } } + + } http://git-wip-us.apache.org/repos/asf/johnzon/blob/847a4268/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java ---------------------------------------------------------------------- diff --git a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java index bf704e9..1446e92 100644 --- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java +++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/SerializerTest.java @@ -71,6 +71,24 @@ public class SerializerTest { assertEquals(4, deser.moreFoos.get(1).value); } + @Test + public void nullValuesInList() { + Jsonb jsonb = JsonbBuilder.create(); + + IntList wrapper = new IntList(); + wrapper.elems.add(null); + assertEquals("{\"elems\":[null]}", jsonb.toJson(wrapper)); + + wrapper.elems.add(1); + assertEquals("{\"elems\":[null,1]}", jsonb.toJson(wrapper)); + + wrapper.elems.add(0, 2); + assertEquals("{\"elems\":[2,null,1]}", jsonb.toJson(wrapper)); + + wrapper.elems.remove(2); + assertEquals("{\"elems\":[2,null]}", jsonb.toJson(wrapper)); + } + public static class Foo { public String name; public int value; @@ -87,6 +105,10 @@ public class SerializerTest { public List<Foo> moreFoos = new ArrayList<>(); } + public static class IntList { + public List<Integer> elems = new ArrayList<>(); + } + public static class FooDeser implements JsonbDeserializer<Foo> { @Override public Foo deserialize(final JsonParser parser, final DeserializationContext ctx, final Type rtType) { http://git-wip-us.apache.org/repos/asf/johnzon/blob/847a4268/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java ---------------------------------------------------------------------- diff --git a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java index dc06ea7..3e7672e 100644 --- a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java +++ b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/MapperTest.java @@ -300,6 +300,19 @@ public class MapperTest { } @Test + public void writeListWithNulls() { + List<String> list = new ArrayList<>(); + list.add("bla"); + list.add(null); + list.add("blub"); + final StringWriter sw = new StringWriter(); + new MapperBuilder().build().writeArray(list, sw); + + String json = sw.toString(); + assertEquals("[\"bla\",null,\"blub\"]", json); + } + + @Test public void writeObject() { final TheObject instance = new MapperBuilder().build().readObject(new ByteArrayInputStream(BIG_OBJECT_STR.getBytes()), TheObject.class); // suppose reader writes but this is tested @@ -532,6 +545,14 @@ public class MapperTest { assertEquals("[1,2]", new String(baos.toByteArray())); baos.reset(); + new MapperBuilder().build().writeArray(new Short[] { 1, null, 2 }, baos); + assertEquals("[1,null,2]", new String(baos.toByteArray())); + + baos.reset(); + new MapperBuilder().build().writeArray(new Short[] { null }, baos); + assertEquals("[null]", new String(baos.toByteArray())); + + baos.reset(); baos = new ByteArrayOutputStream(); new MapperBuilder().build().writeArray(new Integer[] { 1, 2 }, baos); assertEquals("[1,2]", new String(baos.toByteArray()));
