diff options
Diffstat (limited to 'tcllib/modules/json/json.testsuite')
-rw-r--r-- | tcllib/modules/json/json.testsuite | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/tcllib/modules/json/json.testsuite b/tcllib/modules/json/json.testsuite new file mode 100644 index 0000000..a793451 --- /dev/null +++ b/tcllib/modules/json/json.testsuite @@ -0,0 +1,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.} +} + +# ------------------------------------------------------------------------- |