Schema a now "parsed" into C++-validator-objects in a first step and then validation takes place with these objects. Errors are now handled via a user-provided error-handler allowing the user to collect all errors at once or bail out when a certain threshold is reached. Fixes #36 and #8. One (sub-)schema can now be referenced with different URIs. Fixes #9 JSON schema draft 7 is now supported. Fixes #35
134 lines
3.5 KiB
JSON
134 lines
3.5 KiB
JSON
[
|
|
{
|
|
"description": "a schema given for items",
|
|
"schema": {
|
|
"items": {"type": "integer"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid items",
|
|
"data": [ 1, 2, 3 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "wrong type of items",
|
|
"data": [1, "x"],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "ignores non-arrays",
|
|
"data": {"foo" : "bar"},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "JavaScript pseudo-array is valid",
|
|
"data": {
|
|
"0": "invalid",
|
|
"length": 1
|
|
},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "an array of schemas for items",
|
|
"schema": {
|
|
"items": [
|
|
{"type": "integer"},
|
|
{"type": "string"}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "correct types",
|
|
"data": [ 1, "foo" ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "wrong types",
|
|
"data": [ "foo", 1 ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "incomplete array of items",
|
|
"data": [ 1 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "array with additional items",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "empty array",
|
|
"data": [ ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "JavaScript pseudo-array is valid",
|
|
"data": {
|
|
"0": "invalid",
|
|
"1": "valid",
|
|
"length": 2
|
|
},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schema (true)",
|
|
"schema": {"items": true},
|
|
"tests": [
|
|
{
|
|
"description": "any array is valid",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schema (false)",
|
|
"schema": {"items": false},
|
|
"tests": [
|
|
{
|
|
"description": "any non-empty array is invalid",
|
|
"data": [ 1, "foo", true ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "items with boolean schemas",
|
|
"schema": {
|
|
"items": [true, false]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "array with one item is valid",
|
|
"data": [ 1 ],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "array with two items is invalid",
|
|
"data": [ 1, "foo" ],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "empty array is valid",
|
|
"data": [],
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|
|
]
|