mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-03 11:25:30 -04:00
add test case and modified old ones
This commit is contained in:
parent
638273af7a
commit
fb96e870a9
@ -3221,22 +3221,59 @@ public class JSONObjectTest {
|
|||||||
}
|
}
|
||||||
@Test(expected=JSONException.class)
|
@Test(expected=JSONException.class)
|
||||||
public void testSimpleRecursiveObject() {
|
public void testSimpleRecursiveObject() {
|
||||||
|
// B -> A -> B ...
|
||||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
RecursiveBean ObjB = new RecursiveBean("ObjB", ObjA);
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
|
ObjB.setRef(ObjA);
|
||||||
ObjA.setRef(ObjB);
|
ObjA.setRef(ObjB);
|
||||||
new JSONObject(ObjA);
|
new JSONObject(ObjA);
|
||||||
fail("Expected an exception");
|
fail("Expected an exception");
|
||||||
}
|
}
|
||||||
@Test(expected=JSONException.class)
|
@Test(expected=JSONException.class)
|
||||||
public void testLongRecursiveObject() {
|
public void testLongRecursiveObject() {
|
||||||
|
// D -> C -> B -> A -> D ...
|
||||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
RecursiveBean ObjB = new RecursiveBean("ObjB", ObjA);
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
RecursiveBean ObjC = new RecursiveBean("ObjB", ObjB);
|
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
||||||
RecursiveBean ObjD = new RecursiveBean("ObjB", ObjC);
|
RecursiveBean ObjD = new RecursiveBean("ObjD");
|
||||||
|
ObjC.setRef(ObjB);
|
||||||
|
ObjB.setRef(ObjA);
|
||||||
|
ObjD.setRef(ObjC);
|
||||||
ObjA.setRef(ObjD);
|
ObjA.setRef(ObjD);
|
||||||
new JSONObject(ObjB);
|
new JSONObject(ObjB);
|
||||||
fail("Expected an exception");
|
fail("Expected an exception");
|
||||||
}
|
}
|
||||||
|
@Test
|
||||||
|
public void testRepeatObjectNotRecursive() {
|
||||||
|
// C -> B -> A
|
||||||
|
// -> A
|
||||||
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
|
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
||||||
|
ObjC.setRef(ObjA);
|
||||||
|
ObjB.setRef(ObjA);
|
||||||
|
ObjB.setRef2(ObjA);
|
||||||
|
new JSONObject(ObjC);
|
||||||
|
new JSONObject(ObjB);
|
||||||
|
new JSONObject(ObjA);
|
||||||
|
}
|
||||||
|
@Test(expected=JSONException.class)
|
||||||
|
public void testRepeatObjectRecursive() {
|
||||||
|
// C -> B -> A -> D -> C
|
||||||
|
// -> D -> C
|
||||||
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
|
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
||||||
|
RecursiveBean ObjD = new RecursiveBean("ObjD");
|
||||||
|
ObjC.setRef(ObjB);
|
||||||
|
ObjB.setRef(ObjA);
|
||||||
|
ObjB.setRef2(ObjD);
|
||||||
|
ObjA.setRef(ObjD);
|
||||||
|
ObjD.setRef(ObjC);
|
||||||
|
new JSONObject(ObjC);
|
||||||
|
fail("Expected an exception");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIssue548ObjectWithEmptyJsonArray() {
|
public void testIssue548ObjectWithEmptyJsonArray() {
|
||||||
|
@ -8,16 +8,16 @@ package org.json.junit.data;
|
|||||||
public class RecursiveBean {
|
public class RecursiveBean {
|
||||||
private String name;
|
private String name;
|
||||||
private Object reference;
|
private Object reference;
|
||||||
|
private Object reference2;
|
||||||
public String getName() { return name; }
|
public String getName() { return name; }
|
||||||
public Object getRef() {return reference;}
|
public Object getRef() {return reference;}
|
||||||
|
public Object getRef2() {return reference2;}
|
||||||
public void setRef(Object refObj) {reference = refObj;}
|
public void setRef(Object refObj) {reference = refObj;}
|
||||||
|
public void setRef2(Object refObj) {reference2 = refObj;}
|
||||||
|
|
||||||
public RecursiveBean(String name) {
|
public RecursiveBean(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
reference = null;
|
reference = null;
|
||||||
}
|
reference2 = null;
|
||||||
public RecursiveBean(String name, Object refObj) {
|
|
||||||
this.name = name;
|
|
||||||
reference = refObj;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user