Skip to content

Commit 7af94f5

Browse files
committed
Test cases added for JSONArrayTest
1 parent ebbd71c commit 7af94f5

File tree

1 file changed

+287
-0
lines changed

1 file changed

+287
-0
lines changed
Lines changed: 287 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
package processing.data;
2+
3+
import org.junit.Before;
4+
import org.junit.Test;
5+
6+
import java.io.StringReader;
7+
8+
import static org.junit.Assert.*;
9+
10+
public class JSONArrayTest {
11+
private JSONArray jsonArray;
12+
13+
@Before
14+
public void setUp() {
15+
jsonArray = new JSONArray();
16+
}
17+
18+
// Verify getString method works as intended
19+
@Test
20+
public void testGetString() {
21+
JSONArray array = JSONArray.parse("['sample', 'text']");
22+
assertEquals("sample", array.getString(0));
23+
assertEquals("text", array.getString(1));
24+
}
25+
26+
// Verify getString method with default return value works as intended
27+
@Test
28+
public void testGetStringWithDefault() {
29+
JSONArray array = JSONArray.parse("['sample', null]");
30+
assertEquals("sample", array.getString(0, "default"));
31+
assertEquals("random", array.getString(1, "random"));
32+
assertEquals("default", array.getString(2, "default"));
33+
}
34+
35+
// Verify getString method with invalid type throws exception
36+
@Test(expected = RuntimeException.class)
37+
public void testGetStringWithInvalidType() {
38+
JSONArray array = JSONArray.parse("[132]");
39+
array.getString(0);
40+
}
41+
42+
// Verify list creation from String list works as intended
43+
@Test
44+
public void testJSONArrayFromStringList() {
45+
StringList stringList = new StringList();
46+
stringList.append("some");
47+
stringList.append("text");
48+
49+
JSONArray array = new JSONArray(stringList);
50+
51+
assertEquals(2, array.size());
52+
assertEquals("some", array.getString(0));
53+
assertEquals("text", array.getString(1));
54+
}
55+
56+
// Verify getInt method works as intended
57+
@Test
58+
public void testGetInt() {
59+
JSONArray array = JSONArray.parse("[ 118, 999]");
60+
assertEquals(118, array.getInt(0));
61+
assertEquals(999, array.getInt(1));
62+
}
63+
64+
// Verify getInt method with default return value works as intended
65+
@Test
66+
public void testGetIntWithDefault() {
67+
JSONArray array = JSONArray.parse("[72, null]");
68+
assertEquals(72, array.getInt(0, -1));
69+
assertEquals(-1, array.getInt(1, -1));
70+
assertEquals(-1, array.getInt(2, -1));
71+
}
72+
73+
// Verify getInt method with invalid type throws exception
74+
@Test(expected = RuntimeException.class)
75+
public void testGetIntWithInvalidType() {
76+
JSONArray array = JSONArray.parse("['test']");
77+
array.getInt(0);
78+
}
79+
80+
// Verify list creation from int list works as intended
81+
@Test
82+
public void testJSONArrayFromIntList() {
83+
IntList intList = new IntList();
84+
intList.append(1);
85+
intList.append(2);
86+
intList.append(3);
87+
88+
JSONArray array = new JSONArray(intList);
89+
90+
assertEquals(3, array.size());
91+
assertEquals(1, array.getInt(0));
92+
}
93+
94+
// Verify getLong method works as intended
95+
@Test
96+
public void testGetLong() {
97+
JSONArray array = JSONArray.parse("[ 9223372036854775807, 72]");
98+
assertEquals(9223372036854775807L, array.getLong(0));
99+
assertEquals(72L, array.getLong(1));
100+
}
101+
102+
// Verify getLong method with default return value works as intended
103+
@Test
104+
public void testGetLongWithDefault() {
105+
JSONArray array = JSONArray.parse("[9223372036854775807, null]");
106+
assertEquals(9223372036854775807L, array.getLong(0, -1));
107+
assertEquals(-1, array.getLong(1, -1));
108+
assertEquals(-1L, array.getLong(2, -1L));
109+
}
110+
111+
// Verify getLong method with invalid type throws exception
112+
@Test(expected = RuntimeException.class)
113+
public void testGetLongWithInvalidType() {
114+
JSONArray array = JSONArray.parse("['test']");
115+
array.getLong(0);
116+
}
117+
118+
// Verify getFloat method works as intended
119+
@Test
120+
public void testGetFloat() {
121+
JSONArray array = JSONArray.parse("[3.1, 21.03, 0.0]");
122+
assertEquals(3.1f, array.getFloat(0), 0.0001);
123+
assertEquals(21.03f, array.getFloat(1), 0.0001);
124+
assertEquals(0.0f, array.getFloat(2), 0.0001);
125+
}
126+
127+
// Verify getFloat method with default return value works as intended
128+
@Test
129+
public void testGetFloatWithDefault() {
130+
JSONArray array = JSONArray.parse("[3.14159, null]");
131+
assertEquals(3.14159f, array.getFloat(0, -1.0f), 0.0001);
132+
assertEquals(-1.0f, array.getFloat(1, -1.0f), 0.0001);
133+
assertEquals(-1.0f, array.getFloat(2, -1.0f), 0.0001);
134+
}
135+
136+
// Verify getFloat method with invalid type throws exception
137+
@Test(expected = RuntimeException.class)
138+
public void testGetFloatWithInvalidType() {
139+
JSONArray array = JSONArray.parse("['not a float']");
140+
array.getFloat(0);
141+
}
142+
143+
// Verify list creation from float list works as intended
144+
@Test
145+
public void testJSONArrayFromFloatList() {
146+
FloatList floatList = new FloatList();
147+
floatList.append(1.1f);
148+
floatList.append(2.2f);
149+
150+
JSONArray array = new JSONArray(floatList);
151+
152+
assertEquals(2, array.size());
153+
assertEquals(2.2f, array.getFloat(1), 0.0001f);
154+
}
155+
156+
// Verify getDouble method works as intended
157+
@Test
158+
public void testGetDouble() {
159+
JSONArray array = JSONArray.parse("[3.141592653589793, 2.718281828459045]");
160+
assertEquals(3.141592653589793, array.getDouble(0), 0.0000000001);
161+
assertEquals(2.718281828459045, array.getDouble(1), 0.0000000001);
162+
}
163+
164+
// Verify getDouble method with default return value works as intended
165+
@Test
166+
public void testGetDoubleWithDefault() {
167+
JSONArray array = JSONArray.parse("[3.141592653589793, null]");
168+
assertEquals(3.141592653589793, array.getDouble(0, -1.0), 0.0000000001);
169+
assertEquals(-1.0, array.getDouble(1, -1.0), 0.0000000001);
170+
assertEquals(-1.0, array.getDouble(2, -1.0), 0.0000000001);
171+
}
172+
173+
// Verify getDouble method with invalid type throws exception
174+
@Test(expected = RuntimeException.class)
175+
public void testGetDoubleWithInvalidType() {
176+
JSONArray array = JSONArray.parse("['test']");
177+
array.getDouble(0);
178+
}
179+
180+
// Verify getBoolean method works as intended
181+
@Test
182+
public void testGetBoolean() {
183+
JSONArray array = JSONArray.parse("[true, false, 'true', 'false']");
184+
185+
assertTrue(array.getBoolean(0));
186+
assertFalse(array.getBoolean(1));
187+
assertTrue(array.getBoolean(2));
188+
assertFalse(array.getBoolean(3));
189+
}
190+
191+
// Verify getBoolean method with default return value works as intended
192+
@Test
193+
public void testGetBooleanWithDefault() {
194+
JSONArray array = JSONArray.parse("[true, null]");
195+
assertTrue(array.getBoolean(0, false));
196+
assertFalse(array.getBoolean(1, false));
197+
assertFalse(array.getBoolean(2, false));
198+
}
199+
200+
// Verify getDouble method with invalid type throws exception
201+
@Test(expected = RuntimeException.class)
202+
public void testGetBooleanWithInvalidType() {
203+
JSONArray array = JSONArray.parse("[2]");
204+
array.getBoolean(0);
205+
}
206+
207+
// Verify sample array is parsed correctly
208+
@Test
209+
public void testParseValidJSONArray() {
210+
JSONArray array = JSONArray.parse("[1, 2, 3, 'test']");
211+
212+
assertEquals(4, array.size());
213+
assertEquals(1, array.get(0));
214+
assertEquals(2, array.get(1));
215+
assertEquals(3, array.get(2));
216+
assertEquals("test", array.get(3));
217+
}
218+
219+
// Verify sample array is parsed correctly
220+
@Test(expected = RuntimeException.class)
221+
public void testParseInvalidJSONArray() {
222+
new JSONArray("not an array");
223+
}
224+
225+
// Verify sample array with special chars is parsed correctly
226+
@Test
227+
public void testParseWithSpecialCharacters() {
228+
JSONArray array = JSONArray.parse("['quote\\\"quote', 'backslash\\\\backslash']");
229+
230+
assertEquals("quote\"quote", array.getString(0));
231+
assertEquals("backslash\\backslash", array.getString(1));
232+
}
233+
234+
// Verify sample array from reader is parsed correctly
235+
@Test
236+
public void testParseValidJSONArrayFromReader() {
237+
String jsonStr = "[1, 2, 3, 'test']";
238+
StringReader reader = new StringReader(jsonStr);
239+
240+
JSONArray array = new JSONArray(reader);
241+
242+
assertEquals(4, array.size());
243+
assertEquals(1, array.get(0));
244+
assertEquals(2, array.get(1));
245+
assertEquals(3, array.get(2));
246+
assertEquals("test", array.get(3));
247+
}
248+
249+
// Verify nested arrays are parsed correctly
250+
@Test
251+
public void testGetJSONArray() {
252+
JSONArray array = JSONArray.parse("[[7, 123], ['test', 'array', 'blah']]");
253+
254+
JSONArray nested_1 = array.getJSONArray(0);
255+
JSONArray nested_2 = array.getJSONArray(1);
256+
257+
assertEquals(2, nested_1.size());
258+
assertEquals(3, nested_2.size());
259+
assertEquals(7, nested_1.getInt(0));
260+
assertEquals("blah", nested_2.getString(2));
261+
}
262+
263+
// Verify getJSONObject method works as intended
264+
@Test
265+
public void testGetJSONObject() {
266+
JSONArray array = JSONArray.parse("[{'dict key' : 'some value', 'num' : 123}]");
267+
268+
JSONObject dict_obj = array.getJSONObject(0);
269+
270+
assertEquals("some value", dict_obj.getString("dict key"));
271+
assertEquals(123, dict_obj.getInt("num"));
272+
}
273+
274+
// Verify the set and remove features work as intended
275+
@Test
276+
public void testSetAndRemove() {
277+
JSONArray array = JSONArray.parse("[1,2,3]");
278+
279+
array.setInt(1, 42);
280+
assertEquals(42, array.getInt(1));
281+
282+
array.remove(1);
283+
assertEquals(2, array.size());
284+
assertEquals(3, array.getInt(1));
285+
}
286+
287+
}

0 commit comments

Comments
 (0)