mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-03 03:15:32 -04:00
Adding test case for nested json with depth of 999, 1000, 1001
This commit is contained in:
parent
6d811607dd
commit
dcac3bc18e
@ -1438,4 +1438,56 @@ public class JSONArrayTest {
|
|||||||
array.add(array);
|
array.add(array);
|
||||||
new JSONArray(array);
|
new JSONArray(array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRecursiveDepthAtPosition999Object() {
|
||||||
|
HashMap<String, Object> map = JSONObjectTest.buildNestedMap(999);
|
||||||
|
new JSONArray().put(0, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRecursiveDepthAtPosition1000Object() {
|
||||||
|
HashMap<String, Object> map = JSONObjectTest.buildNestedMap(1000);
|
||||||
|
new JSONArray().put(0, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = JSONException.class)
|
||||||
|
public void testRecursiveDepthAtPosition1001Object() {
|
||||||
|
HashMap<String, Object> map = JSONObjectTest.buildNestedMap(1001);
|
||||||
|
new JSONArray().put(0, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = JSONException.class)
|
||||||
|
public void testRecursiveDepthArrayLimitedMaps() {
|
||||||
|
ArrayList<Object> array = new ArrayList<>();
|
||||||
|
array.add(array);
|
||||||
|
new JSONArray(array);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRecursiveDepthArrayFor999Levels() {
|
||||||
|
ArrayList<Object> array = buildNestedArray(999);
|
||||||
|
new JSONArray(array);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRecursiveDepthArrayFor1000Levels() {
|
||||||
|
ArrayList<Object> array = buildNestedArray(1000);
|
||||||
|
new JSONArray(array);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = JSONException.class)
|
||||||
|
public void testRecursiveDepthArrayFor1001Levels() {
|
||||||
|
ArrayList<Object> array = buildNestedArray(1001);
|
||||||
|
new JSONArray(array);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<Object> buildNestedArray(int maxDepth) {
|
||||||
|
if (maxDepth <= 0) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
ArrayList<Object> nestedArray = new ArrayList<>();
|
||||||
|
nestedArray.add(buildNestedArray(maxDepth - 1));
|
||||||
|
return nestedArray;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3735,4 +3735,41 @@ public class JSONObjectTest {
|
|||||||
jsonObject.put("test", inside);
|
jsonObject.put("test", inside);
|
||||||
new JSONObject(jsonObject);
|
new JSONObject(jsonObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void issue743SerializationMapWith999Objects() {
|
||||||
|
HashMap<String, Object> map = buildNestedMap(999);
|
||||||
|
JSONObject object = new JSONObject(map);
|
||||||
|
String jsonString = object.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void issue743SerializationMapWith1000Objects() {
|
||||||
|
HashMap<String, Object> map = buildNestedMap(1000);
|
||||||
|
JSONObject object = new JSONObject(map);
|
||||||
|
String jsonString = object.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = JSONException.class)
|
||||||
|
public void issue743SerializationMapWith1001Objects() {
|
||||||
|
HashMap<String, Object> map = buildNestedMap(1001);
|
||||||
|
JSONObject object = new JSONObject(map);
|
||||||
|
String jsonString = object.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to build nested map of max maxDepth
|
||||||
|
*
|
||||||
|
* @param maxDepth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static HashMap<String, Object> buildNestedMap(int maxDepth) {
|
||||||
|
if (maxDepth <= 0) {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
|
HashMap<String, Object> nestedMap = new HashMap<>();
|
||||||
|
nestedMap.put("t", buildNestedMap(maxDepth - 1));
|
||||||
|
return nestedMap;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user