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