xref: /aosp_15_r20/external/json-schema-validator/src/test/suite/tests/draft2020-12/contains.json (revision 78c4dd6aa35290980cdcd1623a7e337e8d021c7c)
1[
2    {
3        "description": "contains keyword validation",
4        "schema": {
5            "$schema": "https://json-schema.org/draft/2020-12/schema",
6            "contains": {"minimum": 5}
7        },
8        "tests": [
9            {
10                "description": "array with item matching schema (5) is valid",
11                "data": [3, 4, 5],
12                "valid": true
13            },
14            {
15                "description": "array with item matching schema (6) is valid",
16                "data": [3, 4, 6],
17                "valid": true
18            },
19            {
20                "description": "array with two items matching schema (5, 6) is valid",
21                "data": [3, 4, 5, 6],
22                "valid": true
23            },
24            {
25                "description": "array without items matching schema is invalid",
26                "data": [2, 3, 4],
27                "valid": false
28            },
29            {
30                "description": "empty array is invalid",
31                "data": [],
32                "valid": false
33            },
34            {
35                "description": "not array is valid",
36                "data": {},
37                "valid": true
38            }
39        ]
40    },
41    {
42        "description": "contains keyword with const keyword",
43        "schema": {
44            "$schema": "https://json-schema.org/draft/2020-12/schema",
45            "contains": { "const": 5 }
46        },
47        "tests": [
48            {
49                "description": "array with item 5 is valid",
50                "data": [3, 4, 5],
51                "valid": true
52            },
53            {
54                "description": "array with two items 5 is valid",
55                "data": [3, 4, 5, 5],
56                "valid": true
57            },
58            {
59                "description": "array without item 5 is invalid",
60                "data": [1, 2, 3, 4],
61                "valid": false
62            }
63        ]
64    },
65    {
66        "description": "contains keyword with boolean schema true",
67        "schema": {
68            "$schema": "https://json-schema.org/draft/2020-12/schema",
69            "contains": true
70        },
71        "tests": [
72            {
73                "description": "any non-empty array is valid",
74                "data": ["foo"],
75                "valid": true
76            },
77            {
78                "description": "empty array is invalid",
79                "data": [],
80                "valid": false
81            }
82        ]
83    },
84    {
85        "description": "contains keyword with boolean schema false",
86        "schema": {
87            "$schema": "https://json-schema.org/draft/2020-12/schema",
88            "contains": false
89        },
90        "tests": [
91            {
92                "description": "any non-empty array is invalid",
93                "data": ["foo"],
94                "valid": false
95            },
96            {
97                "description": "empty array is invalid",
98                "data": [],
99                "valid": false
100            },
101            {
102                "description": "non-arrays are valid",
103                "data": "contains does not apply to strings",
104                "valid": true
105            }
106        ]
107    },
108    {
109        "description": "items + contains",
110        "schema": {
111            "$schema": "https://json-schema.org/draft/2020-12/schema",
112            "items": { "multipleOf": 2 },
113            "contains": { "multipleOf": 3 }
114        },
115        "tests": [
116            {
117                "description": "matches items, does not match contains",
118                "data": [ 2, 4, 8 ],
119                "valid": false
120            },
121            {
122                "description": "does not match items, matches contains",
123                "data": [ 3, 6, 9 ],
124                "valid": false
125            },
126            {
127                "description": "matches both items and contains",
128                "data": [ 6, 12 ],
129                "valid": true
130            },
131            {
132                "description": "matches neither items nor contains",
133                "data": [ 1, 5 ],
134                "valid": false
135            }
136        ]
137    },
138    {
139        "description": "contains with false if subschema",
140        "schema": {
141            "$schema": "https://json-schema.org/draft/2020-12/schema",
142            "contains": {
143                "if": false,
144                "else": true
145            }
146        },
147        "tests": [
148            {
149                "description": "any non-empty array is valid",
150                "data": ["foo"],
151                "valid": true
152            },
153            {
154                "description": "empty array is invalid",
155                "data": [],
156                "valid": false
157            }
158        ]
159    },
160    {
161        "description": "contains with null instance elements",
162        "schema": {
163            "$schema": "https://json-schema.org/draft/2020-12/schema",
164            "contains": {
165                "type": "null"
166            }
167        },
168        "tests": [
169            {
170                "description": "allows null items",
171                "data": [ null ],
172                "valid": true
173            }
174        ]
175    }
176]
177