|
1 |
| -import x.json2 |
| 1 | +module json2 |
2 | 2 |
|
3 |
| -fn test_raw_decode_string() { |
4 |
| - str := json2.raw_decode('"Hello!"') or { |
5 |
| - assert false |
6 |
| - json2.Any(json2.null) |
7 |
| - } |
| 3 | +fn test_raw_decode_string() ? { |
| 4 | + str := raw_decode('"Hello!"') ? |
8 | 5 | assert str.str() == 'Hello!'
|
9 | 6 | }
|
10 | 7 |
|
11 |
| -fn test_raw_decode_number() { |
12 |
| - num := json2.raw_decode('123') or { |
13 |
| - assert false |
14 |
| - json2.Any(json2.null) |
15 |
| - } |
| 8 | +fn test_raw_decode_number() ? { |
| 9 | + num := raw_decode('123') ? |
16 | 10 | assert num.int() == 123
|
17 | 11 | }
|
18 | 12 |
|
19 |
| -fn test_raw_decode_array() { |
20 |
| - raw_arr := json2.raw_decode('["Foo", 1]') or { |
21 |
| - assert false |
22 |
| - json2.Any(json2.null) |
23 |
| - } |
| 13 | +fn test_raw_decode_array() ? { |
| 14 | + raw_arr := raw_decode('["Foo", 1]') ? |
24 | 15 | arr := raw_arr.arr()
|
25 | 16 | assert arr[0].str() == 'Foo'
|
26 | 17 | assert arr[1].int() == 1
|
27 | 18 | }
|
28 | 19 |
|
29 |
| -fn test_raw_decode_bool() { |
30 |
| - bol := json2.raw_decode('false') or { |
31 |
| - assert false |
32 |
| - json2.Any(json2.null) |
33 |
| - } |
| 20 | +fn test_raw_decode_bool() ? { |
| 21 | + bol := raw_decode('false') ? |
34 | 22 | assert bol.bool() == false
|
35 | 23 | }
|
36 | 24 |
|
37 |
| -fn test_raw_decode_map() { |
38 |
| - raw_mp := json2.raw_decode('{"name":"Bob","age":20}') or { |
39 |
| - assert false |
40 |
| - json2.Any(json2.null) |
41 |
| - } |
| 25 | +fn test_raw_decode_map() ? { |
| 26 | + raw_mp := raw_decode('{"name":"Bob","age":20}') ? |
42 | 27 | mp := raw_mp.as_map()
|
43 | 28 | assert mp['name'].str() == 'Bob'
|
44 | 29 | assert mp['age'].int() == 20
|
45 | 30 | }
|
46 | 31 |
|
47 |
| -fn test_raw_decode_null() { |
48 |
| - nul := json2.raw_decode('null') or { |
49 |
| - assert false |
50 |
| - json2.Any(json2.null) |
51 |
| - } |
52 |
| - assert nul is json2.Null |
| 32 | +fn test_raw_decode_null() ? { |
| 33 | + nul := raw_decode('null') ? |
| 34 | + assert nul is Null |
53 | 35 | }
|
54 | 36 |
|
55 |
| -fn test_raw_decode_invalid() { |
56 |
| - json2.raw_decode('1z') or { |
| 37 | +fn test_raw_decode_invalid() ? { |
| 38 | + raw_decode('1z') or { |
57 | 39 | assert err.msg == '[x.json2] invalid token `z` (0:17)'
|
58 | 40 | return
|
59 | 41 | }
|
60 | 42 | assert false
|
61 | 43 | }
|
62 | 44 |
|
63 |
| -fn test_raw_decode_string_with_dollarsign() { |
64 |
| - str := json2.raw_decode(r'"Hello $world"') or { |
65 |
| - assert false |
66 |
| - json2.Any(json2.null) |
67 |
| - } |
| 45 | +fn test_raw_decode_string_with_dollarsign() ? { |
| 46 | + str := raw_decode(r'"Hello $world"') ? |
68 | 47 | assert str.str() == r'Hello $world'
|
69 | 48 | }
|
70 | 49 |
|
71 |
| -fn test_raw_decode_map_with_whitespaces() { |
72 |
| - raw_mp := json2.raw_decode(' \n\t{"name":"Bob","age":20}\n\t') or { |
73 |
| - eprintln(err.msg) |
74 |
| - assert false |
75 |
| - json2.Any(json2.null) |
76 |
| - } |
| 50 | +fn test_raw_decode_map_with_whitespaces() ? { |
| 51 | + raw_mp := raw_decode(' \n\t{"name":"Bob","age":20}\n\t') ? |
77 | 52 | mp := raw_mp.as_map()
|
78 | 53 | assert mp['name'].str() == 'Bob'
|
79 | 54 | assert mp['age'].int() == 20
|
80 | 55 | }
|
| 56 | + |
| 57 | +fn test_nested_array_object() ? { |
| 58 | + mut parser := new_parser(r'[[[[[],[],[]]]],{"Test":{}},[[]]]', false) |
| 59 | + decoded := parser.decode() ? |
| 60 | + assert parser.n_level == 0 |
| 61 | +} |
0 commit comments