1[
2 {
3 "description": "integer type matches integers",
4 "schema": {"type": "integer"},
5 "tests": [
6 {
7 "description": "an integer is an integer",
8 "data": 1,
9 "valid": true
10 },
11 {
12 "description": "a float is not an integer",
13 "data": 1.1,
14 "valid": false
15 },
16 {
17 "description": "a string is not an integer",
18 "data": "foo",
19 "valid": false
20 },
21 {
22 "description": "a string is still not an integer, even if it looks like one",
23 "data": "1",
24 "valid": false
25 },
26 {
27 "description": "an object is not an integer",
28 "data": {},
29 "valid": false
30 },
31 {
32 "description": "an array is not an integer",
33 "data": [],
34 "valid": false
35 },
36 {
37 "description": "a boolean is not an integer",
38 "data": true,
39 "valid": false
40 },
41 {
42 "description": "null is not an integer",
43 "data": null,
44 "valid": false
45 }
46 ]
47 },
48 {
49 "description": "number type matches numbers",
50 "schema": {"type": "number"},
51 "tests": [
52 {
53 "description": "an integer is a number",
54 "data": 1,
55 "valid": true
56 },
57 {
58 "description": "a float is a number",
59 "data": 1.1,
60 "valid": true
61 },
62 {
63 "description": "a string is not a number",
64 "data": "foo",
65 "valid": false
66 },
67 {
68 "description": "a string is still not a number, even if it looks like one",
69 "data": "1",
70 "valid": false
71 },
72 {
73 "description": "an object is not a number",
74 "data": {},
75 "valid": false
76 },
77 {
78 "description": "an array is not a number",
79 "data": [],
80 "valid": false
81 },
82 {
83 "description": "a boolean is not a number",
84 "data": true,
85 "valid": false
86 },
87 {
88 "description": "null is not a number",
89 "data": null,
90 "valid": false
91 }
92 ]
93 },
94 {
95 "description": "string type matches strings",
96 "schema": {"type": "string"},
97 "tests": [
98 {
99 "description": "1 is not a string",
100 "data": 1,
101 "valid": false
102 },
103 {
104 "description": "a float is not a string",
105 "data": 1.1,
106 "valid": false
107 },
108 {
109 "description": "a string is a string",
110 "data": "foo",
111 "valid": true
112 },
113 {
114 "description": "a string is still a string, even if it looks like a number",
115 "data": "1",
116 "valid": true
117 },
118 {
119 "description": "an empty string is still a string",
120 "data": "",
121 "valid": true
122 },
123 {
124 "description": "an object is not a string",
125 "data": {},
126 "valid": false
127 },
128 {
129 "description": "an array is not a string",
130 "data": [],
131 "valid": false
132 },
133 {
134 "description": "a boolean is not a string",
135 "data": true,
136 "valid": false
137 },
138 {
139 "description": "null is not a string",
140 "data": null,
141 "valid": false
142 }
143 ]
144 },
145 {
146 "description": "object type matches objects",
147 "schema": {"type": "object"},
148 "tests": [
149 {
150 "description": "an integer is not an object",
151 "data": 1,
152 "valid": false
153 },
154 {
155 "description": "a float is not an object",
156 "data": 1.1,
157 "valid": false
158 },
159 {
160 "description": "a string is not an object",
161 "data": "foo",
162 "valid": false
163 },
164 {
165 "description": "an object is an object",
166 "data": {},
167 "valid": true
168 },
169 {
170 "description": "an array is not an object",
171 "data": [],
172 "valid": false
173 },
174 {
175 "description": "a boolean is not an object",
176 "data": true,
177 "valid": false
178 },
179 {
180 "description": "null is not an object",
181 "data": null,
182 "valid": false
183 }
184 ]
185 },
186 {
187 "description": "array type matches arrays",
188 "schema": {"type": "array"},
189 "tests": [
190 {
191 "description": "an integer is not an array",
192 "data": 1,
193 "valid": false
194 },
195 {
196 "description": "a float is not an array",
197 "data": 1.1,
198 "valid": false
199 },
200 {
201 "description": "a string is not an array",
202 "data": "foo",
203 "valid": false
204 },
205 {
206 "description": "an object is not an array",
207 "data": {},
208 "valid": false
209 },
210 {
211 "description": "an array is an array",
212 "data": [],
213 "valid": true
214 },
215 {
216 "description": "a boolean is not an array",
217 "data": true,
218 "valid": false
219 },
220 {
221 "description": "null is not an array",
222 "data": null,
223 "valid": false
224 }
225 ]
226 },
227 {
228 "description": "boolean type matches booleans",
229 "schema": {"type": "boolean"},
230 "tests": [
231 {
232 "description": "an integer is not a boolean",
233 "data": 1,
234 "valid": false
235 },
236 {
237 "description": "zero is not a boolean",
238 "data": 0,
239 "valid": false
240 },
241 {
242 "description": "a float is not a boolean",
243 "data": 1.1,
244 "valid": false
245 },
246 {
247 "description": "a string is not a boolean",
248 "data": "foo",
249 "valid": false
250 },
251 {
252 "description": "an empty string is not a boolean",
253 "data": "",
254 "valid": false
255 },
256 {
257 "description": "an object is not a boolean",
258 "data": {},
259 "valid": false
260 },
261 {
262 "description": "an array is not a boolean",
263 "data": [],
264 "valid": false
265 },
266 {
267 "description": "true is a boolean",
268 "data": true,
269 "valid": true
270 },
271 {
272 "description": "false is a boolean",
273 "data": false,
274 "valid": true
275 },
276 {
277 "description": "null is not a boolean",
278 "data": null,
279 "valid": false
280 }
281 ]
282 },
283 {
284 "description": "null type matches only the null object",
285 "schema": {"type": "null"},
286 "tests": [
287 {
288 "description": "an integer is not null",
289 "data": 1,
290 "valid": false
291 },
292 {
293 "description": "a float is not null",
294 "data": 1.1,
295 "valid": false
296 },
297 {
298 "description": "zero is not null",
299 "data": 0,
300 "valid": false
301 },
302 {
303 "description": "a string is not null",
304 "data": "foo",
305 "valid": false
306 },
307 {
308 "description": "an empty string is not null",
309 "data": "",
310 "valid": false
311 },
312 {
313 "description": "an object is not null",
314 "data": {},
315 "valid": false
316 },
317 {
318 "description": "an array is not null",
319 "data": [],
320 "valid": false
321 },
322 {
323 "description": "true is not null",
324 "data": true,
325 "valid": false
326 },
327 {
328 "description": "false is not null",
329 "data": false,
330 "valid": false
331 },
332 {
333 "description": "null is null",
334 "data": null,
335 "valid": true
336 }
337 ]
338 },
339 {
340 "description": "multiple types can be specified in an array",
341 "schema": {"type": ["integer", "string"]},
342 "tests": [
343 {
344 "description": "an integer is valid",
345 "data": 1,
346 "valid": true
347 },
348 {
349 "description": "a string is valid",
350 "data": "foo",
351 "valid": true
352 },
353 {
354 "description": "a float is invalid",
355 "data": 1.1,
356 "valid": false
357 },
358 {
359 "description": "an object is invalid",
360 "data": {},
361 "valid": false
362 },
363 {
364 "description": "an array is invalid",
365 "data": [],
366 "valid": false
367 },
368 {
369 "description": "a boolean is invalid",
370 "data": true,
371 "valid": false
372 },
373 {
374 "description": "null is invalid",
375 "data": null,
376 "valid": false
377 }
378 ]
379 },
380 {
381 "description": "type as array with one item",
382 "schema": {
383 "type": ["string"]
384 },
385 "tests": [
386 {
387 "description": "string is valid",
388 "data": "foo",
389 "valid": true
390 },
391 {
392 "description": "number is invalid",
393 "data": 123,
394 "valid": false
395 }
396 ]
397 },
398 {
399 "description": "type: array or object",
400 "schema": {
401 "type": ["array", "object"]
402 },
403 "tests": [
404 {
405 "description": "array is valid",
406 "data": [1,2,3],
407 "valid": true
408 },
409 {
410 "description": "object is valid",
411 "data": {"foo": 123},
412 "valid": true
413 },
414 {
415 "description": "number is invalid",
416 "data": 123,
417 "valid": false
418 },
419 {
420 "description": "string is invalid",
421 "data": "foo",
422 "valid": false
423 },
424 {
425 "description": "null is invalid",
426 "data": null,
427 "valid": false
428 }
429 ]
430 },
431 {
432 "description": "type: array, object or null",
433 "schema": {
434 "type": ["array", "object", "null"]
435 },
436 "tests": [
437 {
438 "description": "array is valid",
439 "data": [1,2,3],
440 "valid": true
441 },
442 {
443 "description": "object is valid",
444 "data": {"foo": 123},
445 "valid": true
446 },
447 {
448 "description": "null is valid",
449 "data": null,
450 "valid": true
451 },
452 {
453 "description": "number is invalid",
454 "data": 123,
455 "valid": false
456 },
457 {
458 "description": "string is invalid",
459 "data": "foo",
460 "valid": false
461 }
462 ]
463 }
464]
View as plain text