mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-03 03:15:32 -04:00
Added test cases for self recursion and complex but no recursion
This commit is contained in:
parent
fb96e870a9
commit
fca7e17b38
@ -3220,6 +3220,24 @@ public class JSONObjectTest {
|
|||||||
fail("Expected an exception");
|
fail("Expected an exception");
|
||||||
}
|
}
|
||||||
@Test(expected=JSONException.class)
|
@Test(expected=JSONException.class)
|
||||||
|
public void testSelfRecursiveObject() {
|
||||||
|
// A -> A ...
|
||||||
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
|
ObjA.setRef(ObjA);
|
||||||
|
new JSONObject(ObjA);
|
||||||
|
fail("Expected an exception");
|
||||||
|
}
|
||||||
|
@Test(expected=JSONException.class)
|
||||||
|
public void testLongSelfRecursiveObject() {
|
||||||
|
// B -> A -> A ...
|
||||||
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
|
ObjB.setRef(ObjA);
|
||||||
|
ObjA.setRef(ObjA);
|
||||||
|
new JSONObject(ObjB);
|
||||||
|
fail("Expected an exception");
|
||||||
|
}
|
||||||
|
@Test(expected=JSONException.class)
|
||||||
public void testSimpleRecursiveObject() {
|
public void testSimpleRecursiveObject() {
|
||||||
// B -> A -> B ...
|
// B -> A -> B ...
|
||||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
@ -3243,6 +3261,22 @@ public class JSONObjectTest {
|
|||||||
new JSONObject(ObjB);
|
new JSONObject(ObjB);
|
||||||
fail("Expected an exception");
|
fail("Expected an exception");
|
||||||
}
|
}
|
||||||
|
@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 testRepeatObjectNotRecursive() {
|
public void testRepeatObjectNotRecursive() {
|
||||||
// C -> B -> A
|
// C -> B -> A
|
||||||
@ -3257,21 +3291,25 @@ public class JSONObjectTest {
|
|||||||
new JSONObject(ObjB);
|
new JSONObject(ObjB);
|
||||||
new JSONObject(ObjA);
|
new JSONObject(ObjA);
|
||||||
}
|
}
|
||||||
@Test(expected=JSONException.class)
|
@Test
|
||||||
public void testRepeatObjectRecursive() {
|
public void testLongRepeatObjectNotRecursive() {
|
||||||
// C -> B -> A -> D -> C
|
// C -> B -> A -> D -> E
|
||||||
// -> D -> C
|
// -> D -> E
|
||||||
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
RecursiveBean ObjA = new RecursiveBean("ObjA");
|
||||||
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
RecursiveBean ObjB = new RecursiveBean("ObjB");
|
||||||
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
RecursiveBean ObjC = new RecursiveBean("ObjC");
|
||||||
RecursiveBean ObjD = new RecursiveBean("ObjD");
|
RecursiveBean ObjD = new RecursiveBean("ObjD");
|
||||||
|
RecursiveBean ObjE = new RecursiveBean("ObjE");
|
||||||
ObjC.setRef(ObjB);
|
ObjC.setRef(ObjB);
|
||||||
ObjB.setRef(ObjA);
|
ObjB.setRef(ObjA);
|
||||||
ObjB.setRef2(ObjD);
|
ObjB.setRef2(ObjD);
|
||||||
ObjA.setRef(ObjD);
|
ObjA.setRef(ObjD);
|
||||||
ObjD.setRef(ObjC);
|
ObjD.setRef(ObjE);
|
||||||
new JSONObject(ObjC);
|
new JSONObject(ObjC);
|
||||||
fail("Expected an exception");
|
new JSONObject(ObjB);
|
||||||
|
new JSONObject(ObjA);
|
||||||
|
new JSONObject(ObjD);
|
||||||
|
new JSONObject(ObjE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user