xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/tests/draft2020-12/dependentRequired.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2    {
3        "description": "single dependency",
4        "schema": {
5            "$schema": "https://json-schema.org/draft/2020-12/schema",
6            "dependentRequired": {"bar": ["foo"]}
7        },
8        "tests": [
9            {
10                "description": "neither",
11                "data": {},
12                "valid": true
13            },
14            {
15                "description": "nondependant",
16                "data": {"foo": 1},
17                "valid": true
18            },
19            {
20                "description": "with dependency",
21                "data": {"foo": 1, "bar": 2},
22                "valid": true
23            },
24            {
25                "description": "missing dependency",
26                "data": {"bar": 2},
27                "valid": false
28            },
29            {
30                "description": "ignores arrays",
31                "data": ["bar"],
32                "valid": true
33            },
34            {
35                "description": "ignores strings",
36                "data": "foobar",
37                "valid": true
38            },
39            {
40                "description": "ignores other non-objects",
41                "data": 12,
42                "valid": true
43            }
44        ]
45    },
46    {
47        "description": "empty dependents",
48        "schema": {
49            "$schema": "https://json-schema.org/draft/2020-12/schema",
50            "dependentRequired": {"bar": []}
51        },
52        "tests": [
53            {
54                "description": "empty object",
55                "data": {},
56                "valid": true
57            },
58            {
59                "description": "object with one property",
60                "data": {"bar": 2},
61                "valid": true
62            },
63            {
64                "description": "non-object is valid",
65                "data": 1,
66                "valid": true
67            }
68        ]
69    },
70    {
71        "description": "multiple dependents required",
72        "schema": {
73            "$schema": "https://json-schema.org/draft/2020-12/schema",
74            "dependentRequired": {"quux": ["foo", "bar"]}
75        },
76        "tests": [
77            {
78                "description": "neither",
79                "data": {},
80                "valid": true
81            },
82            {
83                "description": "nondependants",
84                "data": {"foo": 1, "bar": 2},
85                "valid": true
86            },
87            {
88                "description": "with dependencies",
89                "data": {"foo": 1, "bar": 2, "quux": 3},
90                "valid": true
91            },
92            {
93                "description": "missing dependency",
94                "data": {"foo": 1, "quux": 2},
95                "valid": false
96            },
97            {
98                "description": "missing other dependency",
99                "data": {"bar": 1, "quux": 2},
100                "valid": false
101            },
102            {
103                "description": "missing both dependencies",
104                "data": {"quux": 1},
105                "valid": false
106            }
107        ]
108    },
109    {
110        "description": "dependencies with escaped characters",
111        "schema": {
112            "$schema": "https://json-schema.org/draft/2020-12/schema",
113            "dependentRequired": {
114                "foo\nbar": ["foo\rbar"],
115                "foo\"bar": ["foo'bar"]
116            }
117        },
118        "tests": [
119            {
120                "description": "CRLF",
121                "data": {
122                    "foo\nbar": 1,
123                    "foo\rbar": 2
124                },
125                "valid": true
126            },
127            {
128                "description": "quoted quotes",
129                "data": {
130                    "foo'bar": 1,
131                    "foo\"bar": 2
132                },
133                "valid": true
134            },
135            {
136                "description": "CRLF missing dependent",
137                "data": {
138                    "foo\nbar": 1,
139                    "foo": 2
140                },
141                "valid": false
142            },
143            {
144                "description": "quoted quotes missing dependent",
145                "data": {
146                    "foo\"bar": 2
147                },
148                "valid": false
149            }
150        ]
151    }
152]
153