mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-02 11:05:28 -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)
|
||||
public void testSimpleRecursiveObject() {
|
||||
// B -> A -> B ...
|
||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||
RecursiveBean ObjB = new RecursiveBean("ObjB", ObjA);
|
||||
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||
ObjB.setRef(ObjA);
|
||||
ObjA.setRef(ObjB);
|
||||
new JSONObject(ObjA);
|
||||
fail("Expected an exception");
|
||||
}
|
||||
@Test(expected=JSONException.class)
|
||||
public void testLongRecursiveObject() {
|
||||
// D -> C -> B -> A -> D ...
|
||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||
RecursiveBean ObjB = new RecursiveBean("ObjB", ObjA);
|
||||
RecursiveBean ObjC = new RecursiveBean("ObjB", ObjB);
|
||||
RecursiveBean ObjD = new RecursiveBean("ObjB", ObjC);
|
||||
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
||||
RecursiveBean ObjD = new RecursiveBean("ObjD");
|
||||
ObjC.setRef(ObjB);
|
||||
ObjB.setRef(ObjA);
|
||||
ObjD.setRef(ObjC);
|
||||
ObjA.setRef(ObjD);
|
||||
new JSONObject(ObjB);
|
||||
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
|
||||
public void testIssue548ObjectWithEmptyJsonArray() {
|
||||
|
@ -8,16 +8,16 @@ package org.json.junit.data;
|
||||
public class RecursiveBean {
|
||||
private String name;
|
||||
private Object reference;
|
||||
private Object reference2;
|
||||
public String getName() { return name; }
|
||||
public Object getRef() {return reference;}
|
||||
public Object getRef2() {return reference2;}
|
||||
public void setRef(Object refObj) {reference = refObj;}
|
||||
public void setRef2(Object refObj) {reference2 = refObj;}
|
||||
|
||||
public RecursiveBean(String name) {
|
||||
this.name = name;
|
||||
reference = null;
|
||||
}
|
||||
public RecursiveBean(String name, Object refObj) {
|
||||
this.name = name;
|
||||
reference = refObj;
|
||||
reference2 = null;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user