summaryrefslogtreecommitdiff
path: root/json/tests/draft3
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2020-04-25 08:29:20 -0400
committerJulian Berman <Julian@GrayVines.com>2020-04-25 08:29:20 -0400
commit12a5756a1cb0112878036aff1efd7cec2944367b (patch)
tree2273be6a21d1ddb7dd2a5fdee2390c206f1819b2 /json/tests/draft3
parent171f91b56b3e22cb006600a0e74058674176c382 (diff)
parente0a2a712a90b92e95604c2bf0e8a3d6c748053d3 (diff)
downloadjsonschema-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.json21
-rw-r--r--json/tests/draft3/pattern.json27
-rw-r--r--json/tests/draft3/uniqueItems.json167
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
+ }
+ ]
}
]