1268896Sbapt[
2268896Sbapt    {
3268896Sbapt        "description": "object properties validation",
4268896Sbapt        "schema": {
5268896Sbapt            "properties": {
6268896Sbapt                "foo": {"type": "integer"},
7268896Sbapt                "bar": {"type": "string"}
8268896Sbapt            }
9268896Sbapt        },
10268896Sbapt        "tests": [
11268896Sbapt            {
12268896Sbapt                "description": "both properties present and valid is valid",
13268896Sbapt                "data": {"foo": 1, "bar": "baz"},
14268896Sbapt                "valid": true
15268896Sbapt            },
16268896Sbapt            {
17268896Sbapt                "description": "one property invalid is invalid",
18268896Sbapt                "data": {"foo": 1, "bar": {}},
19268896Sbapt                "valid": false
20268896Sbapt            },
21268896Sbapt            {
22268896Sbapt                "description": "both properties invalid is invalid",
23268896Sbapt                "data": {"foo": [], "bar": {}},
24268896Sbapt                "valid": false
25268896Sbapt            },
26268896Sbapt            {
27268896Sbapt                "description": "doesn't invalidate other properties",
28268896Sbapt                "data": {"quux": []},
29268896Sbapt                "valid": true
30268896Sbapt            },
31268896Sbapt            {
32268896Sbapt                "description": "ignores non-objects",
33268896Sbapt                "data": [],
34268896Sbapt                "valid": true
35268896Sbapt            }
36268896Sbapt        ]
37268896Sbapt    },
38268896Sbapt    {
39268896Sbapt        "description":
40268896Sbapt            "properties, patternProperties, additionalProperties interaction",
41268896Sbapt        "schema": {
42268896Sbapt            "properties": {
43268896Sbapt                "foo": {"type": "array", "maxItems": 3},
44268896Sbapt                "bar": {"type": "array"}
45268896Sbapt            },
46268896Sbapt            "patternProperties": {"f.o": {"minItems": 2}},
47268896Sbapt            "additionalProperties": {"type": "integer"}
48268896Sbapt        },
49268896Sbapt        "tests": [
50268896Sbapt            {
51268896Sbapt                "description": "property validates property",
52268896Sbapt                "data": {"foo": [1, 2]},
53268896Sbapt                "valid": true
54268896Sbapt            },
55268896Sbapt            {
56268896Sbapt                "description": "property invalidates property",
57268896Sbapt                "data": {"foo": [1, 2, 3, 4]},
58268896Sbapt                "valid": false
59268896Sbapt            },
60268896Sbapt            {
61268896Sbapt                "description": "patternProperty invalidates property",
62268896Sbapt                "data": {"foo": []},
63268896Sbapt                "valid": false
64268896Sbapt            },
65268896Sbapt            {
66268896Sbapt                "description": "patternProperty validates nonproperty",
67268896Sbapt                "data": {"fxo": [1, 2]},
68268896Sbapt                "valid": true
69268896Sbapt            },
70268896Sbapt            {
71268896Sbapt                "description": "patternProperty invalidates nonproperty",
72268896Sbapt                "data": {"fxo": []},
73268896Sbapt                "valid": false
74268896Sbapt            },
75268896Sbapt            {
76268896Sbapt                "description": "additionalProperty ignores property",
77268896Sbapt                "data": {"bar": []},
78268896Sbapt                "valid": true
79268896Sbapt            },
80268896Sbapt            {
81268896Sbapt                "description": "additionalProperty validates others",
82268896Sbapt                "data": {"quux": 3},
83268896Sbapt                "valid": true
84268896Sbapt            },
85268896Sbapt            {
86268896Sbapt                "description": "additionalProperty invalidates others",
87268896Sbapt                "data": {"quux": "foo"},
88268896Sbapt                "valid": false
89268896Sbapt            }
90268896Sbapt        ]
91268896Sbapt    }
92268896Sbapt]
93