| [ |
| { |
| "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 |
| } |
| ] |
| } |
| ] |