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
4.0 KiB
JSON
134 lines
4.0 KiB
JSON
[
|
|
{
|
|
"description":
|
|
"additionalProperties being false does not allow other properties",
|
|
"schema": {
|
|
"properties": {"foo": {}, "bar": {}},
|
|
"patternProperties": { "^v": {} },
|
|
"additionalProperties": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "no additional properties is valid",
|
|
"data": {"foo": 1},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "an additional property is invalid",
|
|
"data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "ignores arrays",
|
|
"data": [1, 2, 3],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "ignores strings",
|
|
"data": "foobarbaz",
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "ignores other non-objects",
|
|
"data": 12,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "patternProperties are not additional properties",
|
|
"data": {"foo":1, "vroom": 2},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "non-ASCII pattern with additionalProperties",
|
|
"schema": {
|
|
"patternProperties": {"^á": {}},
|
|
"additionalProperties": false
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "matching the pattern is valid",
|
|
"data": {"ármányos": 2},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "not matching the pattern is invalid",
|
|
"data": {"élmény": 2},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description":
|
|
"additionalProperties allows a schema which should validate",
|
|
"schema": {
|
|
"properties": {"foo": {}, "bar": {}},
|
|
"additionalProperties": {"type": "boolean"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "no additional properties is valid",
|
|
"data": {"foo": 1},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "an additional valid property is valid",
|
|
"data": {"foo" : 1, "bar" : 2, "quux" : true},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "an additional invalid property is invalid",
|
|
"data": {"foo" : 1, "bar" : 2, "quux" : 12},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description":
|
|
"additionalProperties can exist by itself",
|
|
"schema": {
|
|
"additionalProperties": {"type": "boolean"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "an additional valid property is valid",
|
|
"data": {"foo" : true},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "an additional invalid property is invalid",
|
|
"data": {"foo" : 1},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalProperties are allowed by default",
|
|
"schema": {"properties": {"foo": {}, "bar": {}}},
|
|
"tests": [
|
|
{
|
|
"description": "additional properties are allowed",
|
|
"data": {"foo": 1, "bar": 2, "quux": true},
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "additionalProperties should not look in applicators",
|
|
"schema": {
|
|
"allOf": [
|
|
{"properties": {"foo": {}}}
|
|
],
|
|
"additionalProperties": {"type": "boolean"}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "properties defined in allOf are not allowed",
|
|
"data": {"foo": 1, "bar": true},
|
|
"valid": false
|
|
}
|
|
]
|
|
}
|
|
]
|