Repository: incubator-johnzon
Updated Branches:
  refs/heads/master e38e44b22 -> 1bc80922f


test for overflow


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

Branch: refs/heads/master
Commit: 1bc80922fe28b822c8b6880f477a30eef3b62701
Parents: e38e44b
Author: Romain manni-Bucau <[email protected]>
Authored: Tue May 31 15:37:22 2016 +0200
Committer: Romain manni-Bucau <[email protected]>
Committed: Tue May 31 15:37:22 2016 +0200

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


http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/1bc80922/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/OverflowTest.java
----------------------------------------------------------------------
diff --git 
a/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/OverflowTest.java 
b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/OverflowTest.java
new file mode 100644
index 0000000..a289f2c
--- /dev/null
+++ b/johnzon-mapper/src/test/java/org/apache/johnzon/mapper/OverflowTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.johnzon.mapper;
+
+import org.junit.Test;
+
+import javax.json.Json;
+import java.util.HashMap;
+
+import static org.junit.Assert.assertEquals;
+
+public class OverflowTest {
+    @Test
+    public void overflow() {
+        final Mapper mapper = new MapperBuilder()
+                .setReaderFactory(Json.createReaderFactory(new HashMap<String, 
Object>() {{
+                    put("org.apache.johnzon.max-string-length", 1024 * 1024);
+                    put("org.apache.johnzon.default-char-buffer", 2); // we 
will overflow > 1
+                }}))
+                .setAccessModeName("field")
+                .build();
+        final StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < 1024 * 1024; i++) {
+            builder.append("a");
+        }
+        final String val = builder.toString();
+        final Value value = mapper.readObject("{\"value\":\"" + val + "\"}", 
Value.class);
+        assertEquals(val, Value.class.cast(value).value);
+        assertEquals("{\"value\":\"" + val + "\"}", 
mapper.writeObjectAsString(value));
+    }
+
+    public static class Value {
+        public String value;
+    }
+}

Reply via email to