295 lines
7.6 KiB
JSON
295 lines
7.6 KiB
JSON
[
|
|
{
|
|
"description": "allOf",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"properties": {
|
|
"bar": {"type": "integer"}
|
|
},
|
|
"required": ["bar"]
|
|
},
|
|
{
|
|
"properties": {
|
|
"foo": {"type": "string"}
|
|
},
|
|
"required": ["foo"]
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "allOf",
|
|
"data": {"foo": "baz", "bar": 2},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch second",
|
|
"data": {"foo": "baz"},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "mismatch first",
|
|
"data": {"bar": 2},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "wrong type",
|
|
"data": {"foo": "baz", "bar": "quux"},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with base schema",
|
|
"schema": {
|
|
"properties": {"bar": {"type": "integer"}},
|
|
"required": ["bar"],
|
|
"allOf" : [
|
|
{
|
|
"properties": {
|
|
"foo": {"type": "string"}
|
|
},
|
|
"required": ["foo"]
|
|
},
|
|
{
|
|
"properties": {
|
|
"baz": {"type": "null"}
|
|
},
|
|
"required": ["baz"]
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid",
|
|
"data": {"foo": "quux", "bar": 2, "baz": null},
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch base schema",
|
|
"data": {"foo": "quux", "baz": null},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "mismatch first allOf",
|
|
"data": {"bar": 2, "baz": null},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "mismatch second allOf",
|
|
"data": {"foo": "quux", "bar": 2},
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "mismatch both",
|
|
"data": {"bar": 2},
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf simple types",
|
|
"schema": {
|
|
"allOf": [
|
|
{"maximum": 30},
|
|
{"minimum": 20}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid",
|
|
"data": 25,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "mismatch one",
|
|
"data": 35,
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with boolean schemas, all true",
|
|
"schema": {"allOf": [true, true]},
|
|
"tests": [
|
|
{
|
|
"description": "any value is valid",
|
|
"data": "foo",
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with boolean schemas, some false",
|
|
"schema": {"allOf": [true, false]},
|
|
"tests": [
|
|
{
|
|
"description": "any value is invalid",
|
|
"data": "foo",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with boolean schemas, all false",
|
|
"schema": {"allOf": [false, false]},
|
|
"tests": [
|
|
{
|
|
"description": "any value is invalid",
|
|
"data": "foo",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with one empty schema",
|
|
"schema": {
|
|
"allOf": [
|
|
{}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "any data is valid",
|
|
"data": 1,
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with two empty schemas",
|
|
"schema": {
|
|
"allOf": [
|
|
{},
|
|
{}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "any data is valid",
|
|
"data": 1,
|
|
"valid": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with the first empty schema",
|
|
"schema": {
|
|
"allOf": [
|
|
{},
|
|
{ "type": "number" }
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "number is valid",
|
|
"data": 1,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "string is invalid",
|
|
"data": "foo",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf with the last empty schema",
|
|
"schema": {
|
|
"allOf": [
|
|
{ "type": "number" },
|
|
{}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "number is valid",
|
|
"data": 1,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "string is invalid",
|
|
"data": "foo",
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "nested allOf, to check validation semantics",
|
|
"schema": {
|
|
"allOf": [
|
|
{
|
|
"allOf": [
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "null is valid",
|
|
"data": null,
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "anything non-null is invalid",
|
|
"data": 123,
|
|
"valid": false
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "allOf combined with anyOf, oneOf",
|
|
"schema": {
|
|
"allOf": [ { "multipleOf": 2 } ],
|
|
"anyOf": [ { "multipleOf": 3 } ],
|
|
"oneOf": [ { "multipleOf": 5 } ]
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "allOf: false, anyOf: false, oneOf: false",
|
|
"data": 1,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: false, anyOf: false, oneOf: true",
|
|
"data": 5,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: false, anyOf: true, oneOf: false",
|
|
"data": 3,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: false, anyOf: true, oneOf: true",
|
|
"data": 15,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: true, anyOf: false, oneOf: false",
|
|
"data": 2,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: true, anyOf: false, oneOf: true",
|
|
"data": 10,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: true, anyOf: true, oneOf: false",
|
|
"data": 6,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "allOf: true, anyOf: true, oneOf: true",
|
|
"data": 30,
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|
|
]
|