| [ |
| { |
| "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": "forbid everything with empty schema", |
| "schema": { "not": {} }, |
| "tests": [ |
| { |
| "description": "number is invalid", |
| "data": 1, |
| "valid": false |
| }, |
| { |
| "description": "string is invalid", |
| "data": "foo", |
| "valid": false |
| }, |
| { |
| "description": "boolean true is invalid", |
| "data": true, |
| "valid": false |
| }, |
| { |
| "description": "boolean false is invalid", |
| "data": false, |
| "valid": false |
| }, |
| { |
| "description": "null is invalid", |
| "data": null, |
| "valid": false |
| }, |
| { |
| "description": "object is invalid", |
| "data": {"foo": "bar"}, |
| "valid": false |
| }, |
| { |
| "description": "empty object is invalid", |
| "data": {}, |
| "valid": false |
| }, |
| { |
| "description": "array is invalid", |
| "data": ["foo"], |
| "valid": false |
| }, |
| { |
| "description": "empty array is invalid", |
| "data": [], |
| "valid": false |
| } |
| ] |
| }, |
| { |
| "description": "double negation", |
| "schema": { "not": { "not": {} } }, |
| "tests": [ |
| { |
| "description": "any value is valid", |
| "data": "foo", |
| "valid": true |
| } |
| ] |
| } |
| ] |