You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by st...@apache.org on 2017/09/26 06:12:56 UTC

johnzon git commit: JOHNZON-134 add a test with a very large Json structure.

Repository: johnzon
Updated Branches:
  refs/heads/master ade1c2717 -> c15ee3137


JOHNZON-134 add a test with a very large Json structure.

Testing the auto-extend mechanism


Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/c15ee313
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/c15ee313
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/c15ee313

Branch: refs/heads/master
Commit: c15ee3137e9310d0f34de91a58fac1d9674c0f8d
Parents: ade1c27
Author: Mark Struberg <st...@apache.org>
Authored: Tue Sep 26 08:11:22 2017 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Tue Sep 26 08:11:22 2017 +0200

----------------------------------------------------------------------
 .../org/apache/johnzon/core/OverflowTest.java   | 36 ++++++++++++++++++++
 1 file changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/johnzon/blob/c15ee313/johnzon-core/src/test/java/org/apache/johnzon/core/OverflowTest.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/OverflowTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/OverflowTest.java
index 8087fdd..218789d 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/OverflowTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/OverflowTest.java
@@ -18,11 +18,21 @@
  */
 package org.apache.johnzon.core;
 
+import org.junit.Assert;
 import org.junit.Test;
 
 import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonBuilderFactory;
 import javax.json.JsonObject;
+import javax.json.JsonReaderFactory;
+import javax.json.JsonWriter;
+import javax.json.JsonWriterFactory;
+import javax.json.spi.JsonProvider;
+
 import java.io.StringReader;
+import java.io.StringWriter;
 import java.util.HashMap;
 
 import static org.junit.Assert.assertEquals;
@@ -52,4 +62,30 @@ public class OverflowTest {
             put(JsonParserFactoryImpl.AUTO_ADJUST_STRING_BUFFER, "false");
         }}).createReader(new StringReader("{\"another\":\"value too long\"}")).readObject();
     }
+
+    @Test
+    public void testVeryLargeJson() {
+        JsonWriterFactory writerFactory = Json.createWriterFactory(new HashMap<String, Object>() {{
+            put(JsonParserFactoryImpl.BUFFER_LENGTH, "256");
+        }});
+
+        int itemSize = 50_000;
+
+        StringWriter sw = new StringWriter();
+        JsonWriter writer = writerFactory.createWriter(sw);
+
+        JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
+        for (int i = 0; i < itemSize; i++) {
+            arrayBuilder.add("0123456789012345-" + i);
+        }
+        writer.writeArray(arrayBuilder.build());
+
+        String json = sw.toString();
+        System.out.println("Created a JSON of size " + json.length() + " bytes");
+
+        // read it back in
+        JsonArray jsonArray = Json.createReader(new StringReader(json)).readArray();
+        Assert.assertEquals(itemSize, jsonArray.size());
+
+    }
 }