33import junit .framework .TestCase ;
44
55import java .io .IOException ;
6+ import java .util .Arrays ;
7+ import java .util .List ;
68
79import static org .junit .Assert .assertArrayEquals ;
810
@@ -11,61 +13,136 @@ public class TestArray extends TestCase {
1113 public void test_empty_array () throws IOException {
1214 Jsoniter iter = Jsoniter .parse ("[]" );
1315 assertFalse (iter .readArray ());
16+ iter .reset ();
17+ int [] array = iter .read (int [].class );
18+ assertEquals (0 , array .length );
19+ iter .reset ();
20+ List <String > list = iter .read (new TypeLiteral <List <String >>() {
21+ });
22+ assertEquals (0 , list .size ());
23+ iter .reset ();
24+ Any any = iter .readAny ();
25+ assertEquals (0 , any .getList ().size ());
1426 }
1527
1628 public void test_one_element () throws IOException {
1729 Jsoniter iter = Jsoniter .parse ("[1]" );
1830 assertTrue (iter .readArray ());
1931 assertEquals (1 , iter .readInt ());
2032 assertFalse (iter .readArray ());
33+ iter .reset ();
34+ int [] array = iter .read (int [].class );
35+ assertArrayEquals (new int []{1 }, array );
36+ iter .reset ();
37+ List <Integer > list = iter .read (new TypeLiteral <List <Integer >>() {
38+ });
39+ assertEquals (Arrays .asList (1 ), list );
40+ iter .reset ();
41+ assertArrayEquals (new Object []{1.0 }, iter .read (Object [].class ));
42+ iter .reset ();
43+ assertEquals (1 , iter .read (Any [].class )[0 ].toInt ());
44+ iter .reset ();
45+ assertEquals (1 , iter .readAny ().toInt (0 ));
2146 }
2247
2348 public void test_two_elements () throws IOException {
24- Jsoniter iter = Jsoniter .parse ("[1,2] " );
49+ Jsoniter iter = Jsoniter .parse (" [ 1 , 2 ] " );
2550 assertTrue (iter .readArray ());
2651 assertEquals (1 , iter .readInt ());
2752 assertTrue (iter .readArray ());
2853 assertEquals (2 , iter .readInt ());
2954 assertFalse (iter .readArray ());
55+ iter .reset ();
56+ int [] array = iter .read (int [].class );
57+ assertArrayEquals (new int []{1 , 2 }, array );
58+ iter .reset ();
59+ List <Integer > list = iter .read (new TypeLiteral <List <Integer >>() {
60+ });
61+ assertEquals (Arrays .asList (1 , 2 ), list );
62+ iter .reset ();
63+ assertArrayEquals (new Object []{1.0 , 2.0 }, iter .read (Object [].class ));
64+ iter .reset ();
65+ assertEquals (1 , iter .read (Any [].class )[0 ].toInt ());
66+ iter .reset ();
67+ assertEquals (1 , iter .readAny ().toInt (0 ));
3068 }
3169
32- public void test_whitespace_in_head () throws IOException {
33- Jsoniter iter = Jsoniter .parse (" [1] " );
70+ public void test_three_elements () throws IOException {
71+ Jsoniter iter = Jsoniter .parse (" [ 1 , 2, 3 ] " );
3472 assertTrue (iter .readArray ());
3573 assertEquals (1 , iter .readInt ());
36- assertFalse (iter .readArray ());
37- }
38-
39- public void test_whitespace_after_array_start () throws IOException {
40- Jsoniter iter = Jsoniter .parse ("[ 1]" );
4174 assertTrue (iter .readArray ());
42- assertEquals (1 , iter .readInt ());
43- assertFalse (iter .readArray ());
44- }
45-
46- public void test_whitespace_before_array_end () throws IOException {
47- Jsoniter iter = Jsoniter .parse ("[1 ]" );
75+ assertEquals (2 , iter .readInt ());
4876 assertTrue (iter .readArray ());
49- assertEquals (1 , iter .readInt ());
77+ assertEquals (3 , iter .readInt ());
5078 assertFalse (iter .readArray ());
79+ iter .reset ();
80+ int [] array = iter .read (int [].class );
81+ assertArrayEquals (new int []{1 , 2 , 3 }, array );
82+ iter .reset ();
83+ List <Integer > list = iter .read (new TypeLiteral <List <Integer >>() {
84+ });
85+ assertEquals (Arrays .asList (1 , 2 , 3 ), list );
86+ iter .reset ();
87+ assertArrayEquals (new Object []{1.0 , 2.0 , 3.0 }, iter .read (Object [].class ));
88+ iter .reset ();
89+ assertEquals (1 , iter .read (Any [].class )[0 ].toInt ());
90+ iter .reset ();
91+ assertEquals (1 , iter .readAny ().toInt (0 ));
5192 }
5293
53- public void test_whitespace_before_comma () throws IOException {
54- Jsoniter iter = Jsoniter .parse ("[ 1 ,2] " );
94+ public void test_four_elements () throws IOException {
95+ Jsoniter iter = Jsoniter .parse (" [ 1 , 2, 3, 4 ] " );
5596 assertTrue (iter .readArray ());
5697 assertEquals (1 , iter .readInt ());
5798 assertTrue (iter .readArray ());
5899 assertEquals (2 , iter .readInt ());
100+ assertTrue (iter .readArray ());
101+ assertEquals (3 , iter .readInt ());
102+ assertTrue (iter .readArray ());
103+ assertEquals (4 , iter .readInt ());
59104 assertFalse (iter .readArray ());
105+ iter .reset ();
106+ int [] array = iter .read (int [].class );
107+ assertArrayEquals (new int []{1 , 2 , 3 , 4 }, array );
108+ iter .reset ();
109+ List <Integer > list = iter .read (new TypeLiteral <List <Integer >>() {
110+ });
111+ assertEquals (Arrays .asList (1 , 2 , 3 , 4 ), list );
112+ iter .reset ();
113+ assertArrayEquals (new Object []{1.0 , 2.0 , 3.0 , 4.0 }, iter .read (Object [].class ));
114+ iter .reset ();
115+ assertEquals (1 , iter .read (Any [].class )[0 ].toInt ());
116+ iter .reset ();
117+ assertEquals (1 , iter .readAny ().toInt (0 ));
60118 }
61119
62- public void test_whitespace_after_comma () throws IOException {
63- Jsoniter iter = Jsoniter .parse ("[1 , 2] " );
120+ public void test_five_elements () throws IOException {
121+ Jsoniter iter = Jsoniter .parse (" [ 1 , 2, 3, 4, 5 ] " );
64122 assertTrue (iter .readArray ());
65123 assertEquals (1 , iter .readInt ());
66124 assertTrue (iter .readArray ());
67125 assertEquals (2 , iter .readInt ());
126+ assertTrue (iter .readArray ());
127+ assertEquals (3 , iter .readInt ());
128+ assertTrue (iter .readArray ());
129+ assertEquals (4 , iter .readInt ());
130+ assertTrue (iter .readArray ());
131+ assertEquals (5 , iter .readInt ());
68132 assertFalse (iter .readArray ());
133+ iter .reset ();
134+ int [] array = iter .read (int [].class );
135+ assertArrayEquals (new int []{1 , 2 , 3 , 4 , 5 }, array );
136+ iter .reset ();
137+ List <Integer > list = iter .read (new TypeLiteral <List <Integer >>() {
138+ });
139+ assertEquals (Arrays .asList (1 , 2 , 3 , 4 , 5 ), list );
140+ iter .reset ();
141+ assertArrayEquals (new Object []{1.0 , 2.0 , 3.0 , 4.0 , 5.0 }, iter .read (Object [].class ));
142+ iter .reset ();
143+ assertEquals (1 , iter .read (Any [].class )[0 ].toInt ());
144+ iter .reset ();
145+ assertEquals (1 , iter .readAny ().toInt (0 ));
69146 }
70147
71148 public void test_null () throws IOException {
0 commit comments