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
118 lines
2.7 KiB
JSON
118 lines
2.7 KiB
JSON
[
|
|
{
|
|
"description": "not",
|
|
"schema": {
|
|
"not": {"type": "integer"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "allowed",
|
|
"data": "foo",
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "disallowed",
|
|
"data": 1,
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "not multiple types",
|
|
"schema": {
|
|
"not": {"type": ["integer", "boolean"]}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid",
|
|
"data": "foo",
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch",
|
|
"data": 1,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "other mismatch",
|
|
"data": true,
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "not more complex schema",
|
|
"schema": {
|
|
"not": {
|
|
"type": "object",
|
|
"properties": {
|
|
"foo": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "match",
|
|
"data": 1,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "other match",
|
|
"data": {"foo": 1},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch",
|
|
"data": {"foo": "bar"},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "forbidden property",
|
|
"schema": {
|
|
"properties": {
|
|
"foo": {
|
|
"not": {}
|
|
}
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "property present",
|
|
"data": {"foo": 1, "bar": 2},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "property absent",
|
|
"data": {"bar": 1, "baz": 2},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "not with boolean schema true",
|
|
"schema": {"not": true},
|
|
"tests": [
|
|
{
|
|
"description": "any value is invalid",
|
|
"data": "foo",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "not with boolean schema false",
|
|
"schema": {"not": false},
|
|
"tests": [
|
|
{
|
|
"description": "any value is valid",
|
|
"data": "foo",
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|
|
]
|