3
3
import junit .framework .TestCase ;
4
4
5
5
import java .io .IOException ;
6
+ import java .util .Arrays ;
7
+ import java .util .List ;
6
8
7
9
import static org .junit .Assert .assertArrayEquals ;
8
10
@@ -11,61 +13,136 @@ public class TestArray extends TestCase {
11
13
public void test_empty_array () throws IOException {
12
14
Jsoniter iter = Jsoniter .parse ("[]" );
13
15
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 ());
14
26
}
15
27
16
28
public void test_one_element () throws IOException {
17
29
Jsoniter iter = Jsoniter .parse ("[1]" );
18
30
assertTrue (iter .readArray ());
19
31
assertEquals (1 , iter .readInt ());
20
32
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 ));
21
46
}
22
47
23
48
public void test_two_elements () throws IOException {
24
- Jsoniter iter = Jsoniter .parse ("[1,2] " );
49
+ Jsoniter iter = Jsoniter .parse (" [ 1 , 2 ] " );
25
50
assertTrue (iter .readArray ());
26
51
assertEquals (1 , iter .readInt ());
27
52
assertTrue (iter .readArray ());
28
53
assertEquals (2 , iter .readInt ());
29
54
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 ));
30
68
}
31
69
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 ] " );
34
72
assertTrue (iter .readArray ());
35
73
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]" );
41
74
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 ());
48
76
assertTrue (iter .readArray ());
49
- assertEquals (1 , iter .readInt ());
77
+ assertEquals (3 , iter .readInt ());
50
78
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 ));
51
92
}
52
93
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 ] " );
55
96
assertTrue (iter .readArray ());
56
97
assertEquals (1 , iter .readInt ());
57
98
assertTrue (iter .readArray ());
58
99
assertEquals (2 , iter .readInt ());
100
+ assertTrue (iter .readArray ());
101
+ assertEquals (3 , iter .readInt ());
102
+ assertTrue (iter .readArray ());
103
+ assertEquals (4 , iter .readInt ());
59
104
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 ));
60
118
}
61
119
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 ] " );
64
122
assertTrue (iter .readArray ());
65
123
assertEquals (1 , iter .readInt ());
66
124
assertTrue (iter .readArray ());
67
125
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 ());
68
132
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 ));
69
146
}
70
147
71
148
public void test_null () throws IOException {
0 commit comments