]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/libucl/tests/schema/properties.json
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / libucl / tests / schema / properties.json
1 [
2     {
3         "description": "object properties validation",
4         "schema": {
5             "properties": {
6                 "foo": {"type": "integer"},
7                 "bar": {"type": "string"}
8             }
9         },
10         "tests": [
11             {
12                 "description": "both properties present and valid is valid",
13                 "data": {"foo": 1, "bar": "baz"},
14                 "valid": true
15             },
16             {
17                 "description": "one property invalid is invalid",
18                 "data": {"foo": 1, "bar": {}},
19                 "valid": false
20             },
21             {
22                 "description": "both properties invalid is invalid",
23                 "data": {"foo": [], "bar": {}},
24                 "valid": false
25             },
26             {
27                 "description": "doesn't invalidate other properties",
28                 "data": {"quux": []},
29                 "valid": true
30             },
31             {
32                 "description": "ignores non-objects",
33                 "data": [],
34                 "valid": true
35             }
36         ]
37     },
38     {
39         "description":
40             "properties, patternProperties, additionalProperties interaction",
41         "schema": {
42             "properties": {
43                 "foo": {"type": "array", "maxItems": 3},
44                 "bar": {"type": "array"}
45             },
46             "patternProperties": {"f.o": {"minItems": 2}},
47             "additionalProperties": {"type": "integer"}
48         },
49         "tests": [
50             {
51                 "description": "property validates property",
52                 "data": {"foo": [1, 2]},
53                 "valid": true
54             },
55             {
56                 "description": "property invalidates property",
57                 "data": {"foo": [1, 2, 3, 4]},
58                 "valid": false
59             },
60             {
61                 "description": "patternProperty invalidates property",
62                 "data": {"foo": []},
63                 "valid": false
64             },
65             {
66                 "description": "patternProperty validates nonproperty",
67                 "data": {"fxo": [1, 2]},
68                 "valid": true
69             },
70             {
71                 "description": "patternProperty invalidates nonproperty",
72                 "data": {"fxo": []},
73                 "valid": false
74             },
75             {
76                 "description": "additionalProperty ignores property",
77                 "data": {"bar": []},
78                 "valid": true
79             },
80             {
81                 "description": "additionalProperty validates others",
82                 "data": {"quux": 3},
83                 "valid": true
84             },
85             {
86                 "description": "additionalProperty invalidates others",
87                 "data": {"quux": "foo"},
88                 "valid": false
89             }
90         ]
91     }
92 ]