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