xref: /aosp_15_r20/external/json-schema-validator/src/test/resources/draft2019-09/dependencies.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2  {
3    "description": "dependencies",
4    "schema": {
5      "dependencies": {
6        "bar": [
7          "foo"
8        ]
9      }
10    },
11    "tests": [
12      {
13        "description": "neither",
14        "data": {},
15        "valid": true
16      },
17      {
18        "description": "nondependant",
19        "data": {
20          "foo": 1
21        },
22        "valid": true
23      },
24      {
25        "description": "with dependency",
26        "data": {
27          "foo": 1,
28          "bar": 2
29        },
30        "valid": true
31      },
32      {
33        "description": "missing dependency",
34        "data": {
35          "bar": 2
36        },
37        "valid": false
38      },
39      {
40        "description": "ignores arrays",
41        "data": [
42          "bar"
43        ],
44        "valid": true
45      },
46      {
47        "description": "ignores strings",
48        "data": "foobar",
49        "valid": true
50      },
51      {
52        "description": "ignores other non-objects",
53        "data": 12,
54        "valid": true
55      }
56    ]
57  },
58  {
59    "description": "dependencies with empty array",
60    "schema": {
61      "dependencies": {
62        "bar": []
63      }
64    },
65    "tests": [
66      {
67        "description": "empty object",
68        "data": {},
69        "valid": true
70      },
71      {
72        "description": "object with one property",
73        "data": {
74          "bar": 2
75        },
76        "valid": true
77      }
78    ]
79  },
80  {
81    "description": "multiple dependencies",
82    "schema": {
83      "dependencies": {
84        "quux": [
85          "foo",
86          "bar"
87        ]
88      }
89    },
90    "tests": [
91      {
92        "description": "neither",
93        "data": {},
94        "valid": true
95      },
96      {
97        "description": "nondependants",
98        "data": {
99          "foo": 1,
100          "bar": 2
101        },
102        "valid": true
103      },
104      {
105        "description": "with dependencies",
106        "data": {
107          "foo": 1,
108          "bar": 2,
109          "quux": 3
110        },
111        "valid": true
112      },
113      {
114        "description": "missing dependency",
115        "data": {
116          "foo": 1,
117          "quux": 2
118        },
119        "valid": false
120      },
121      {
122        "description": "missing other dependency",
123        "data": {
124          "bar": 1,
125          "quux": 2
126        },
127        "valid": false
128      },
129      {
130        "description": "missing both dependencies",
131        "data": {
132          "quux": 1
133        },
134        "valid": false
135      }
136    ]
137  },
138  {
139    "description": "multiple dependencies subschema",
140    "schema": {
141      "dependencies": {
142        "bar": {
143          "properties": {
144            "foo": {
145              "type": "integer"
146            },
147            "bar": {
148              "type": "integer"
149            }
150          }
151        }
152      }
153    },
154    "tests": [
155      {
156        "description": "valid",
157        "data": {
158          "foo": 1,
159          "bar": 2
160        },
161        "valid": true
162      },
163      {
164        "description": "no dependency",
165        "data": {
166          "foo": "quux"
167        },
168        "valid": true
169      },
170      {
171        "description": "wrong type",
172        "data": {
173          "foo": "quux",
174          "bar": 2
175        },
176        "valid": false
177      },
178      {
179        "description": "wrong type other",
180        "data": {
181          "foo": 2,
182          "bar": "quux"
183        },
184        "valid": false
185      },
186      {
187        "description": "wrong type both",
188        "data": {
189          "foo": "quux",
190          "bar": "quux"
191        },
192        "valid": false
193      }
194    ]
195  },
196  {
197    "description": "dependencies with boolean subschemas",
198    "schema": {
199      "dependencies": {
200        "foo": true,
201        "bar": false
202      }
203    },
204    "tests": [
205      {
206        "description": "object with property having schema true is valid",
207        "data": {
208          "foo": 1
209        },
210        "valid": true
211      },
212      {
213        "description": "object with property having schema false is invalid",
214        "data": {
215          "bar": 2
216        },
217        "valid": false
218      },
219      {
220        "description": "object with both properties is invalid",
221        "data": {
222          "foo": 1,
223          "bar": 2
224        },
225        "valid": false
226      },
227      {
228        "description": "empty object is valid",
229        "data": {},
230        "valid": true
231      }
232    ]
233  },
234  {
235    "description": "empty array of dependencies",
236    "schema": {
237      "dependencies": {
238        "foo": []
239      }
240    },
241    "tests": [
242      {
243        "description": "object with property is valid",
244        "data": {
245          "foo": 1
246        },
247        "valid": true
248      },
249      {
250        "description": "empty object is valid",
251        "data": {},
252        "valid": true
253      },
254      {
255        "description": "non-object is valid",
256        "data": 1,
257        "valid": true
258      }
259    ]
260  },
261  {
262    "description": "dependencies with escaped characters",
263    "schema": {
264      "dependencies": {
265        "foo\nbar": [
266          "foo\rbar"
267        ],
268        "foo\tbar": {
269          "minProperties": 4
270        },
271        "foo'bar": {
272          "required": [
273            "foo\"bar"
274          ]
275        },
276        "foo\"bar": [
277          "foo'bar"
278        ]
279      }
280    },
281    "tests": [
282      {
283        "description": "valid object 1",
284        "data": {
285          "foo\nbar": 1,
286          "foo\rbar": 2
287        },
288        "valid": true
289      },
290      {
291        "description": "valid object 2",
292        "data": {
293          "foo\tbar": 1,
294          "a": 2,
295          "b": 3,
296          "c": 4
297        },
298        "valid": true
299      },
300      {
301        "description": "valid object 3",
302        "data": {
303          "foo'bar": 1,
304          "foo\"bar": 2
305        },
306        "valid": true
307      },
308      {
309        "description": "invalid object 1",
310        "data": {
311          "foo\nbar": 1,
312          "foo": 2
313        },
314        "valid": false
315      },
316      {
317        "description": "invalid object 2",
318        "data": {
319          "foo\tbar": 1,
320          "a": 2
321        },
322        "valid": false
323      },
324      {
325        "description": "invalid object 3",
326        "data": {
327          "foo'bar": 1
328        },
329        "valid": false
330      },
331      {
332        "description": "invalid object 4",
333        "data": {
334          "foo\"bar": 2
335        },
336        "valid": false
337      }
338    ]
339  }
340]
341