v/vlib/x/json2/strict/strict_test.v

49 lines
869 B
V

import x.json2.strict
struct StructType[T] {
mut:
val T
}
struct StructTypeAndOptionType[T] {
mut:
val T
option_val ?T
}
fn test_get_keys_from_json() {
json_data := r'
{
"val": 0,
"val1": {"val": 63}
}
'
key_structs := strict.get_keys_from_json(strict.tokenize(json_data))
assert key_structs == [
strict.KeyStruct{
key: 'val'
value_type: .literal
token_pos: 1
},
strict.KeyStruct{
key: 'val1'
value_type: .map
token_pos: 5
},
]
}
fn test_strict_check() {
assert strict.strict_check[StructTypeAndOptionType[string]]('{"val": "","val": ""}') == strict.StructCheckResult{
duplicates: ['val']
superfluous: []
}
assert strict.strict_check[StructTypeAndOptionType[string]]('{"val": "","val2": ""}') == strict.StructCheckResult{
duplicates: []
superfluous: ['val2']
}
}