xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/tests/draft-next/propertyDependencies.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2    {
3        "description": "propertyDependencies doesn't act on non-objects",
4        "schema": {
5            "propertyDependencies": {
6                "foo": {"bar": false}
7            }
8        },
9        "tests": [
10            {
11                "description": "ignores booleans",
12                "data": true,
13                "valid": true
14            },
15            {
16                "description": "ignores integers",
17                "data": 123,
18                "valid": true
19            },
20            {
21                "description": "ignores floats",
22                "data": 1.0,
23                "valid": true
24            },
25            {
26                "description": "ignores strings",
27                "data": "abc",
28                "valid": true
29            },
30            {
31                "description": "ignores arrays",
32                "data": [],
33                "valid": true
34            },
35            {
36                "description": "ignores null",
37                "data": null,
38                "valid": true
39            }
40        ]
41    },
42    {
43        "description": "propertyDependencies doesn't act on non-string property values",
44        "schema": {
45            "propertyDependencies": {
46                "foo": {"bar": false}
47            }
48        },
49        "tests": [
50            {
51                "description": "ignores booleans",
52                "data": {"foo": false},
53                "valid": true
54            },
55            {
56                "description": "ignores integers",
57                "data": {"foo": 2},
58                "valid": true
59            },
60            {
61                "description": "ignores floats",
62                "data": {"foo": 1.1},
63                "valid": true
64            },
65            {
66                "description": "ignores objects",
67                "data": {"foo": {}},
68                "valid": true
69            },
70            {
71                "description": "ignores objects wth a key of the expected value",
72                "data": {"foo": {"bar": "baz"}},
73                "valid": true
74            },
75            {
76                "description": "ignores objects with the expected value nested in structure",
77                "data": {"foo": {"baz": "bar"}},
78                "valid": true
79            },
80            {
81                "description": "ignores arrays",
82                "data": {"foo": []},
83                "valid": true
84            },
85            {
86                "description": "ignores null",
87                "data": {"foo": null},
88                "valid": true
89            }
90        ]
91    },
92    {
93        "description": "multiple options selects the right one",
94        "schema": {
95            "propertyDependencies": {
96                "foo": {
97                    "bar": {
98                        "minProperties": 2,
99                        "maxProperties": 2
100                    },
101                    "baz": {"maxProperties": 1},
102                    "qux": true,
103                    "quux": false
104                }
105            }
106        },
107        "tests": [
108            {
109                "description": "bar with exactly 2 properties is valid",
110                "data": {
111                    "foo": "bar",
112                    "other-foo": "other-bar"
113                },
114                "valid": true
115            },
116            {
117                "description": "bar with more than 2 properties is invalid",
118                "data": {
119                    "foo": "bar",
120                    "other-foo": "other-bar",
121                    "too": "many"
122                },
123                "valid": false
124            },
125            {
126                "description": "bar with fewer than 2 properties is invalid",
127                "data": {"foo": "bar"},
128                "valid": false
129            },
130            {
131                "description": "baz alone is valid",
132                "data": {"foo": "baz"},
133                "valid": true
134            },
135            {
136                "description": "baz with other properties is invalid",
137                "data": {
138                    "foo": "baz",
139                    "other-foo": "other-bar"
140                },
141                "valid": false
142            },
143            {
144                "description": "anything allowed with qux",
145                "data": {
146                    "foo": "qux",
147                    "blah": ["some other property"],
148                    "more": "properties"
149                },
150                "valid": true
151            },
152            {
153                "description": "quux is disallowed",
154                "data": {
155                    "foo": "quux"
156                },
157                "valid": false
158            }
159        ]
160    }
161]
162