1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# -*- tcl -*-
# -------------------------------------------------------------------------
# Tests
# -------------------------------------------------------------------------
set i 0
foreach name [lsort -dict [array names JSON]] {
test json-${impl}-1.[incr i] "test JSON $name" -body {
transform [json::json2dict $JSON($name)] $name
} -result [resultfor $name]
}
set i 0
foreach name [lsort -dict [array names JSON]] {
test json-${impl}-7.[incr i] "validate JSON $name" -body {
json::validate $JSON($name)
} -result 1
}
set i 0
foreach name [lsort -dict [array names FAIL]] {
test json-${impl}-8.[incr i] "test FAIL $name" -body {
json::json2dict $FAIL($name)
} -returnCodes error -result $ERR(${name}-${impl})
}
set i 0
foreach name [lsort -dict [array names FAIL]] {
test json-${impl}-9.[incr i] "validate FAIL $name" -body {
json::validate $FAIL($name)
} -result 0
}
# -------------------------------------------------------------------------
# More Tests - list2json, string2json
# TODO: dict2json
# -------------------------------------------------------------------------
test json-${impl}-2.0 {list2json} -body {
json::list2json {{"a"} {"b"} {"c"}}
} -result {["a","b","c"]}
test json-${impl}-2.1 {string2json} -body {
json::string2json a
} -result {"a"}
# -------------------------------------------------------------------------
# many-json2dict
# -------------------------------------------------------------------------
test json-${impl}-3.0 {many-json2dict, wrong args, not enough} -body {
json::many-json2dict
} -returnCodes error -match glob -result {wrong # args: should be "*json::many[-_]json2dict* jsonText ?max?"}
test json-${impl}-3.1 {many-json2dict, wrong args, too many} -body {
json::many-json2dict J M X
} -returnCodes error -match glob -result {wrong # args: should be "*json::many[-_]json2dict* jsonText ?max?"}
test json-${impl}-3.2 {many-json2dict, bad limit, zero} -body {
json::many-json2dict {[]} 0
} -returnCodes error -result {Bad limit 0 of json entities to extract.}
set i 0
foreach first [lsort -dict [array names JSON]] {
foreach second [lsort -dict [array names JSON]] {
set input $JSON($first)
append input " " $JSON($second)
set output {}
lappend output [resultfor $first]
lappend output [resultfor $second]
test json-${impl}-4.[incr i] "many-json2dict: $first/$second, all" -body {
transform* [json::many-json2dict $input] $first $second
} -result $output
}
}
set i 0
foreach first [lsort -dict [array names JSON]] {
foreach second [lsort -dict [array names JSON]] {
set input $JSON($first)
append input " " $JSON($second)
set output {}
lappend output [resultfor $first]
test json-${impl}-5.[incr i] "many-json2dict: $first/$second, first only" -body {
transform* [json::many-json2dict $input 1] $first
} -result $output
}
}
set i 0
foreach first [lsort -dict [array names JSON]] {
set input $JSON($first)
test json-${impl}-6.[incr i] "many-json2dict, bad limit, 3 over 1" -body {
json::many-json2dict $input 3
} -returnCodes error -result {Bad limit 3 of json entities to extract, found only 1.}
}
# -------------------------------------------------------------------------
|