UNPKG

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