summaryrefslogtreecommitdiffstats
path: root/contrib/libucl/tests/schema/patternProperties.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/patternProperties.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/patternProperties.json')
-rw-r--r--contrib/libucl/tests/schema/patternProperties.json110
1 files changed, 110 insertions, 0 deletions
diff --git a/contrib/libucl/tests/schema/patternProperties.json b/contrib/libucl/tests/schema/patternProperties.json
new file mode 100644
index 0000000..18586e5
--- /dev/null
+++ b/contrib/libucl/tests/schema/patternProperties.json
@@ -0,0 +1,110 @@
+[
+ {
+ "description":
+ "patternProperties validates properties matching a regex",
+ "schema": {
+ "patternProperties": {
+ "f.*o": {"type": "integer"}
+ }
+ },
+ "tests": [
+ {
+ "description": "a single valid match is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "multiple valid matches is valid",
+ "data": {"foo": 1, "foooooo" : 2},
+ "valid": true
+ },
+ {
+ "description": "a single invalid match is invalid",
+ "data": {"foo": "bar", "fooooo": 2},
+ "valid": false
+ },
+ {
+ "description": "multiple invalid matches is invalid",
+ "data": {"foo": "bar", "foooooo" : "baz"},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": 12,
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "multiple simultaneous patternProperties are validated",
+ "schema": {
+ "patternProperties": {
+ "a*": {"type": "integer"},
+ "aaa*": {"maximum": 20}
+ }
+ },
+ "tests": [
+ {
+ "description": "a single valid match is valid",
+ "data": {"a": 21},
+ "valid": true
+ },
+ {
+ "description": "a simultaneous match is valid",
+ "data": {"aaaa": 18},
+ "valid": true
+ },
+ {
+ "description": "multiple matches is valid",
+ "data": {"a": 21, "aaaa": 18},
+ "valid": true
+ },
+ {
+ "description": "an invalid due to one is invalid",
+ "data": {"a": "bar"},
+ "valid": false
+ },
+ {
+ "description": "an invalid due to the other is invalid",
+ "data": {"aaaa": 31},
+ "valid": false
+ },
+ {
+ "description": "an invalid due to both is invalid",
+ "data": {"aaa": "foo", "aaaa": 31},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "regexes are not anchored by default and are case sensitive",
+ "schema": {
+ "patternProperties": {
+ "[0-9]{2,}": { "type": "boolean" },
+ "X_": { "type": "string" }
+ }
+ },
+ "tests": [
+ {
+ "description": "non recognized members are ignored",
+ "data": { "answer 1": "42" },
+ "valid": true
+ },
+ {
+ "description": "recognized members are accounted for",
+ "data": { "a31b": null },
+ "valid": false
+ },
+ {
+ "description": "regexes are case sensitive",
+ "data": { "a_x_3": 3 },
+ "valid": true
+ },
+ {
+ "description": "regexes are case sensitive, 2",
+ "data": { "a_X_3": 3 },
+ "valid": false
+ }
+ ]
+ }
+]
OpenPOWER on IntegriCloud