properties.json revision 263648
155682Smarkm[
2233294Sstas    {
355682Smarkm        "description": "object properties validation",
455682Smarkm        "schema": {
5233294Sstas            "properties": {
655682Smarkm                "foo": {"type": "integer"},
755682Smarkm                "bar": {"type": "string"}
855682Smarkm            }
9233294Sstas        },
1055682Smarkm        "tests": [
1155682Smarkm            {
12233294Sstas                "description": "both properties present and valid is valid",
1355682Smarkm                "data": {"foo": 1, "bar": "baz"},
1455682Smarkm                "valid": true
1555682Smarkm            },
16233294Sstas            {
1755682Smarkm                "description": "one property invalid is invalid",
1855682Smarkm                "data": {"foo": 1, "bar": {}},
1955682Smarkm                "valid": false
20233294Sstas            },
2155682Smarkm            {
2255682Smarkm                "description": "both properties invalid is invalid",
2355682Smarkm                "data": {"foo": [], "bar": {}},
2455682Smarkm                "valid": false
2555682Smarkm            },
2655682Smarkm            {
2755682Smarkm                "description": "doesn't invalidate other properties",
2855682Smarkm                "data": {"quux": []},
2955682Smarkm                "valid": true
3055682Smarkm            },
3155682Smarkm            {
3255682Smarkm                "description": "ignores non-objects",
3355682Smarkm                "data": [],
3455682Smarkm                "valid": true
3555682Smarkm            }
3655682Smarkm        ]
3755682Smarkm    },
3855682Smarkm    {
3955682Smarkm        "description":
4055682Smarkm            "properties, patternProperties, additionalProperties interaction",
4155682Smarkm        "schema": {
42233294Sstas            "properties": {
4355682Smarkm                "foo": {"type": "array", "maxItems": 3},
4455682Smarkm                "bar": {"type": "array"}
4555682Smarkm            },
4655682Smarkm            "patternProperties": {"f.o": {"minItems": 2}},
4755682Smarkm            "additionalProperties": {"type": "integer"}
4855682Smarkm        },
4955682Smarkm        "tests": [
5055682Smarkm            {
5155682Smarkm                "description": "property validates property",
5255682Smarkm                "data": {"foo": [1, 2]},
5355682Smarkm                "valid": true
5455682Smarkm            },
5555682Smarkm            {
5655682Smarkm                "description": "property invalidates property",
5755682Smarkm                "data": {"foo": [1, 2, 3, 4]},
5855682Smarkm                "valid": false
5955682Smarkm            },
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]
93