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()));
     }
 }

Reply via email to