]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libucl/tests/schema/patternProperties.json
Update libdialog to 1.3-20180621
[FreeBSD/FreeBSD.git] / contrib / libucl / tests / schema / patternProperties.json
1 [
2     {
3         "description":
4             "patternProperties validates properties matching a regex",
5         "schema": {
6             "patternProperties": {
7                 "f.*o": {"type": "integer"}
8             }
9         },
10         "tests": [
11             {
12                 "description": "a single valid match is valid",
13                 "data": {"foo": 1},
14                 "valid": true
15             },
16             {
17                 "description": "multiple valid matches is valid",
18                 "data": {"foo": 1, "foooooo" : 2},
19                 "valid": true
20             },
21             {
22                 "description": "a single invalid match is invalid",
23                 "data": {"foo": "bar", "fooooo": 2},
24                 "valid": false
25             },
26             {
27                 "description": "a single invalid match is invalid",
28                 "data": {"fooooo": 2, "foo": "bar"},
29                 "valid": false
30             },
31             {
32                 "description": "multiple invalid matches is invalid",
33                 "data": {"foo": "bar", "foooooo" : "baz"},
34                 "valid": false
35             },
36             {
37                 "description": "ignores non-objects",
38                 "data": 12,
39                 "valid": true
40             }
41         ]
42     },
43     {
44         "description": "multiple simultaneous patternProperties are validated",
45         "schema": {
46             "patternProperties": {
47                 "a*": {"type": "integer"},
48                 "aaa*": {"maximum": 20}
49             }
50         },
51         "tests": [
52             {
53                 "description": "a single valid match is valid",
54                 "data": {"a": 21},
55                 "valid": true
56             },
57             {
58                 "description": "a simultaneous match is valid",
59                 "data": {"aaaa": 18},
60                 "valid": true
61             },
62             {
63                 "description": "multiple matches is valid",
64                 "data": {"a": 21, "aaaa": 18},
65                 "valid": true
66             },
67             {
68                 "description": "an invalid due to one is invalid",
69                 "data": {"a": "bar"},
70                 "valid": false
71             },
72             {
73                 "description": "an invalid due to the other is invalid",
74                 "data": {"aaaa": 31},
75                 "valid": false
76             },
77             {
78                 "description": "an invalid due to both is invalid",
79                 "data": {"aaa": "foo", "aaaa": 31},
80                 "valid": false
81             }
82         ]
83     },
84     {
85         "description": "regexes are not anchored by default and are case sensitive",
86         "schema": {
87             "patternProperties": {
88                 "[0-9]{2,}": { "type": "boolean" },
89                 "X_": { "type": "string" }
90             }
91         },
92         "tests": [
93             {
94                 "description": "non recognized members are ignored",
95                 "data": { "answer 1": "42" },
96                 "valid": true
97             },
98             {
99                 "description": "recognized members are accounted for",
100                 "data": { "a31b": null },
101                 "valid": false
102             },
103             {
104                 "description": "regexes are case sensitive",
105                 "data": { "a_x_3": 3 },
106                 "valid": true
107             },
108             {
109                 "description": "regexes are case sensitive, 2",
110                 "data": { "a_X_3": 3 },
111                 "valid": false
112             }
113         ]
114     }
115 ]