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