Repository: johnzon Updated Branches: refs/heads/master 78ad82adb -> 2893743f2
JOHNZON-195: enhanced JsonWriterImplTest unit test to writer all kinds of values and fixed JsonGeneratorImpl accordingly. Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/54c0b11a Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/54c0b11a Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/54c0b11a Branch: refs/heads/master Commit: 54c0b11ab8d84fceff6547612d54b2849fecc3a6 Parents: 78ad82a Author: Bernd Gutjahr <[email protected]> Authored: Thu Nov 22 08:08:17 2018 +0100 Committer: Bernd Gutjahr <[email protected]> Committed: Thu Nov 22 08:08:17 2018 +0100 ---------------------------------------------------------------------- .../apache/johnzon/core/JsonGeneratorImpl.java | 16 ++-- .../apache/johnzon/core/JsonWriterImplTest.java | 89 +++++++++++++++++++- 2 files changed, 94 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/johnzon/blob/54c0b11a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java ---------------------------------------------------------------------- diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java index ec303c5..49f52e1 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java @@ -376,42 +376,42 @@ class JsonGeneratorImpl implements JsonGenerator, JsonChars, Serializable { @Override public JsonGenerator write(final String value) { - checkArray(false); + checkArray(true); writeValueAsJsonString(value); return this; } @Override public JsonGenerator write(final BigDecimal value) { - checkArray(false); + checkArray(true); writeValue(String.valueOf(value)); return this; } @Override public JsonGenerator write(final BigInteger value) { - checkArray(false); + checkArray(true); writeValue(String.valueOf(value)); return this; } @Override public JsonGenerator write(final int value) { - checkArray(false); + checkArray(true); writeValue(value); return this; } @Override public JsonGenerator write(final long value) { - checkArray(false); + checkArray(true); writeValue(value); return this; } @Override public JsonGenerator write(final double value) { - checkArray(false); + checkArray(true); checkDoubleRange(value); writeValue(String.valueOf(value)); return this; @@ -419,14 +419,14 @@ class JsonGeneratorImpl implements JsonGenerator, JsonChars, Serializable { @Override public JsonGenerator write(final boolean value) { - checkArray(false); + checkArray(true); writeValue(String.valueOf(value)); return this; } @Override public JsonGenerator writeNull() { - checkArray(false); + checkArray(true); writeValue(NULL); return this; } http://git-wip-us.apache.org/repos/asf/johnzon/blob/54c0b11a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonWriterImplTest.java ---------------------------------------------------------------------- diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonWriterImplTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonWriterImplTest.java index d9b2ecd..f26b29d 100644 --- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonWriterImplTest.java +++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonWriterImplTest.java @@ -21,22 +21,105 @@ package org.apache.johnzon.core; import static org.junit.Assert.assertEquals; import java.io.ByteArrayOutputStream; +import java.math.BigDecimal; import javax.json.Json; +import javax.json.JsonArrayBuilder; import javax.json.JsonObjectBuilder; +import javax.json.JsonValue; import javax.json.JsonWriter; import org.junit.Test; public class JsonWriterImplTest { @Test - public void writer() { + public void objectWriter() { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final JsonWriter writer = Json.createWriter(out); final JsonObjectBuilder ob = Json.createObjectBuilder(); - ob.add("a", new JsonStringImpl("b")); + ob.add("a", 123); + ob.add("b", new BigDecimal("234.567")); + ob.add("c", "string"); + ob.add("d", JsonValue.TRUE); + ob.add("e", JsonValue.FALSE); + ob.add("f", JsonValue.NULL); writer.write(ob.build()); writer.close(); - assertEquals("{\"a\":\"b\"}", new String(out.toByteArray())); + assertEquals("{\"a\":123,\"b\":234.567,\"c\":\"string\",\"d\":true,\"e\":false,\"f\":null}", + new String(out.toByteArray())); + } + + @Test + public void arrayValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + final JsonArrayBuilder ab = Json.createArrayBuilder(); + ab.add(123); + ab.add(new BigDecimal("234.567")); + ab.add("string"); + ab.add(JsonValue.TRUE); + ab.add(JsonValue.FALSE); + ab.add(JsonValue.NULL); + writer.write(ab.build()); + writer.close(); + assertEquals("[123,234.567,\"string\",true,false,null]", + new String(out.toByteArray())); + } + + @Test + public void integralNumberValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + final JsonValue value = Json.createValue(123); + writer.write(value); + writer.close(); + assertEquals("123", new String(out.toByteArray())); + } + + @Test + public void nonIntegralNumberValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + final JsonValue value = Json.createValue(new BigDecimal("123.456")); + writer.write(value); + writer.close(); + assertEquals("123.456", new String(out.toByteArray())); + } + + @Test + public void stringValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + final JsonValue value = Json.createValue("test-value"); + writer.write(value); + writer.close(); + assertEquals("\"test-value\"", new String(out.toByteArray())); + } + + @Test + public void nullValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + writer.write(JsonValue.NULL); + writer.close(); + assertEquals("null", new String(out.toByteArray())); + } + + @Test + public void trueValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + writer.write(JsonValue.TRUE); + writer.close(); + assertEquals("true", new String(out.toByteArray())); + } + + @Test + public void falseValueWriter() { + final ByteArrayOutputStream out = new ByteArrayOutputStream(); + final JsonWriter writer = Json.createWriter(out); + writer.write(JsonValue.FALSE); + writer.close(); + assertEquals("false", new String(out.toByteArray())); } }
