summaryrefslogtreecommitdiffstats
path: root/contrib/libucl/tests/schema/properties.json
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2014-03-22 17:28:14 +0000
committerbapt <bapt@FreeBSD.org>2014-03-22 17:28:14 +0000
commitb471b8e16d6f2c205ae497402bad0a60c9cd6fa8 (patch)
treeaabc973b2e4479277f8fe9aa0e8ed539826fdca3 /contrib/libucl/tests/schema/properties.json
parent841158cbfbfc6b699dbc10892c6cb878a66a5d7e (diff)
parent6b4d859b54b28a9d46c317ff21676aa37241f6de (diff)
downloadFreeBSD-src-b471b8e16d6f2c205ae497402bad0a60c9cd6fa8.zip
FreeBSD-src-b471b8e16d6f2c205ae497402bad0a60c9cd6fa8.tar.gz
Update to 20140321
This brings schema validation MFC after: 1 week
Diffstat (limited to 'contrib/libucl/tests/schema/properties.json')
-rw-r--r--contrib/libucl/tests/schema/properties.json92
1 files changed, 92 insertions, 0 deletions
diff --git a/contrib/libucl/tests/schema/properties.json b/contrib/libucl/tests/schema/properties.json
new file mode 100644
index 0000000..cd1644d
--- /dev/null
+++ b/contrib/libucl/tests/schema/properties.json
@@ -0,0 +1,92 @@
+[
+ {
+ "description": "object properties validation",
+ "schema": {
+ "properties": {
+ "foo": {"type": "integer"},
+ "bar": {"type": "string"}
+ }
+ },
+ "tests": [
+ {
+ "description": "both properties present and valid is valid",
+ "data": {"foo": 1, "bar": "baz"},
+ "valid": true
+ },
+ {
+ "description": "one property invalid is invalid",
+ "data": {"foo": 1, "bar": {}},
+ "valid": false
+ },
+ {
+ "description": "both properties invalid is invalid",
+ "data": {"foo": [], "bar": {}},
+ "valid": false
+ },
+ {
+ "description": "doesn't invalidate other properties",
+ "data": {"quux": []},
+ "valid": true
+ },
+ {
+ "description": "ignores non-objects",
+ "data": [],
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description":
+ "properties, patternProperties, additionalProperties interaction",
+ "schema": {
+ "properties": {
+ "foo": {"type": "array", "maxItems": 3},
+ "bar": {"type": "array"}
+ },
+ "patternProperties": {"f.o": {"minItems": 2}},
+ "additionalProperties": {"type": "integer"}
+ },
+ "tests": [
+ {
+ "description": "property validates property",
+ "data": {"foo": [1, 2]},
+ "valid": true
+ },
+ {
+ "description": "property invalidates property",
+ "data": {"foo": [1, 2, 3, 4]},
+ "valid": false
+ },
+ {
+ "description": "patternProperty invalidates property",
+ "data": {"foo": []},
+ "valid": false
+ },
+ {
+ "description": "patternProperty validates nonproperty",
+ "data": {"fxo": [1, 2]},
+ "valid": true
+ },
+ {
+ "description": "patternProperty invalidates nonproperty",
+ "data": {"fxo": []},
+ "valid": false
+ },
+ {
+ "description": "additionalProperty ignores property",
+ "data": {"bar": []},
+ "valid": true
+ },
+ {
+ "description": "additionalProperty validates others",
+ "data": {"quux": 3},
+ "valid": true
+ },
+ {
+ "description": "additionalProperty invalidates others",
+ "data": {"quux": "foo"},
+ "valid": false
+ }
+ ]
+ }
+]
OpenPOWER on IntegriCloud