diff options
author | Julian Berman <Julian@GrayVines.com> | 2020-04-25 08:29:20 -0400 |
---|---|---|
committer | Julian Berman <Julian@GrayVines.com> | 2020-04-25 08:29:20 -0400 |
commit | 12a5756a1cb0112878036aff1efd7cec2944367b (patch) | |
tree | 2273be6a21d1ddb7dd2a5fdee2390c206f1819b2 /json/tests/draft3 | |
parent | 171f91b56b3e22cb006600a0e74058674176c382 (diff) | |
parent | e0a2a712a90b92e95604c2bf0e8a3d6c748053d3 (diff) | |
download | jsonschema-12a5756a1cb0112878036aff1efd7cec2944367b.tar.gz |
Merge commit 'e0a2a712a90b92e95604c2bf0e8a3d6c748053d3'
* commit 'e0a2a712a90b92e95604c2bf0e8a3d6c748053d3':
Squashed 'json/' changes from 8e2a05a9..d17e1ba2
Diffstat (limited to 'json/tests/draft3')
-rw-r--r-- | json/tests/draft3/enum.json | 21 | ||||
-rw-r--r-- | json/tests/draft3/pattern.json | 27 | ||||
-rw-r--r-- | json/tests/draft3/uniqueItems.json | 167 |
3 files changed, 211 insertions, 4 deletions
diff --git a/json/tests/draft3/enum.json b/json/tests/draft3/enum.json index 6cb2961..1cc111b 100644 --- a/json/tests/draft3/enum.json +++ b/json/tests/draft3/enum.json @@ -37,6 +37,27 @@ ] }, { + "description": "heterogeneous enum-with-null validation", + "schema": { "enum": [6, null] }, + "tests": [ + { + "description": "null is valid", + "data": null, + "valid": true + }, + { + "description": "number is valid", + "data": 6, + "valid": true + }, + { + "description": "something else is invalid", + "data": "test", + "valid": false + } + ] + }, + { "description": "enums in properties", "schema": { "type":"object", diff --git a/json/tests/draft3/pattern.json b/json/tests/draft3/pattern.json index 25e7299..92db0f9 100644 --- a/json/tests/draft3/pattern.json +++ b/json/tests/draft3/pattern.json @@ -14,9 +14,34 @@ "valid": false }, { - "description": "ignores non-strings", + "description": "ignores booleans", "data": true, "valid": true + }, + { + "description": "ignores integers", + "data": 123, + "valid": true + }, + { + "description": "ignores floats", + "data": 1.0, + "valid": true + }, + { + "description": "ignores objects", + "data": {}, + "valid": true + }, + { + "description": "ignores arrays", + "data": [], + "valid": true + }, + { + "description": "ignores null", + "data": null, + "valid": true } ] }, diff --git a/json/tests/draft3/uniqueItems.json b/json/tests/draft3/uniqueItems.json index 59e3542..58722b8 100644 --- a/json/tests/draft3/uniqueItems.json +++ b/json/tests/draft3/uniqueItems.json @@ -79,7 +79,7 @@ { "description": "uniqueItems with an array of items", "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], + "items": [{"type": "boolean"}, {"type": "boolean"}], "uniqueItems": true }, "tests": [ @@ -128,8 +128,8 @@ { "description": "uniqueItems with an array of items and additionalItems=false", "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, + "items": [{"type": "boolean"}, {"type": "boolean"}], + "uniqueItems": true, "additionalItems": false }, "tests": [ @@ -159,5 +159,166 @@ "valid": false } ] + }, + { + "description": "uniqueItems=false validation", + "schema": { "uniqueItems": false }, + "tests": [ + { + "description": "unique array of integers is valid", + "data": [1, 2], + "valid": true + }, + { + "description": "non-unique array of integers is valid", + "data": [1, 1], + "valid": true + }, + { + "description": "numbers are unique if mathematically unequal", + "data": [1.0, 1.00, 1], + "valid": true + }, + { + "description": "unique array of objects is valid", + "data": [{"foo": "bar"}, {"foo": "baz"}], + "valid": true + }, + { + "description": "non-unique array of objects is valid", + "data": [{"foo": "bar"}, {"foo": "bar"}], + "valid": true + }, + { + "description": "unique array of nested objects is valid", + "data": [ + {"foo": {"bar" : {"baz" : true}}}, + {"foo": {"bar" : {"baz" : false}}} + ], + "valid": true + }, + { + "description": "non-unique array of nested objects is valid", + "data": [ + {"foo": {"bar" : {"baz" : true}}}, + {"foo": {"bar" : {"baz" : true}}} + ], + "valid": true + }, + { + "description": "unique array of arrays is valid", + "data": [["foo"], ["bar"]], + "valid": true + }, + { + "description": "non-unique array of arrays is valid", + "data": [["foo"], ["foo"]], + "valid": true + }, + { + "description": "1 and true are unique", + "data": [1, true], + "valid": true + }, + { + "description": "0 and false are unique", + "data": [0, false], + "valid": true + }, + { + "description": "unique heterogeneous types are valid", + "data": [{}, [1], true, null, 1], + "valid": true + }, + { + "description": "non-unique heterogeneous types are valid", + "data": [{}, [1], true, null, {}, 1], + "valid": true + } + ] + }, + { + "description": "uniqueItems=false with an array of items", + "schema": { + "items": [{"type": "boolean"}, {"type": "boolean"}], + "uniqueItems": false + }, + "tests": [ + { + "description": "[false, true] from items array is valid", + "data": [false, true], + "valid": true + }, + { + "description": "[true, false] from items array is valid", + "data": [true, false], + "valid": true + }, + { + "description": "[false, false] from items array is valid", + "data": [false, false], + "valid": true + }, + { + "description": "[true, true] from items array is valid", + "data": [true, true], + "valid": true + }, + { + "description": "unique array extended from [false, true] is valid", + "data": [false, true, "foo", "bar"], + "valid": true + }, + { + "description": "unique array extended from [true, false] is valid", + "data": [true, false, "foo", "bar"], + "valid": true + }, + { + "description": "non-unique array extended from [false, true] is valid", + "data": [false, true, "foo", "foo"], + "valid": true + }, + { + "description": "non-unique array extended from [true, false] is valid", + "data": [true, false, "foo", "foo"], + "valid": true + } + ] + }, + { + "description": "uniqueItems=false with an array of items and additionalItems=false", + "schema": { + "items": [{"type": "boolean"}, {"type": "boolean"}], + "uniqueItems": false, + "additionalItems": false + }, + "tests": [ + { + "description": "[false, true] from items array is valid", + "data": [false, true], + "valid": true + }, + { + "description": "[true, false] from items array is valid", + "data": [true, false], + "valid": true + }, + { + "description": "[false, false] from items array is valid", + "data": [false, false], + "valid": true + }, + { + "description": "[true, true] from items array is valid", + "data": [true, true], + "valid": true + }, + { + "description": "extra items are invalid even if unique", + "data": [false, true, null], + "valid": false + } + ] } ] |