1 | [{
|
2 | "given":
|
3 | {"foo": {"bar": ["zero", "one", "two"]}},
|
4 | "cases": [
|
5 | {
|
6 | "expression": "foo.bar[0]",
|
7 | "result": "zero"
|
8 | },
|
9 | {
|
10 | "expression": "foo.bar[1]",
|
11 | "result": "one"
|
12 | },
|
13 | {
|
14 | "expression": "foo.bar[2]",
|
15 | "result": "two"
|
16 | },
|
17 | {
|
18 | "expression": "foo.bar[3]",
|
19 | "result": null
|
20 | },
|
21 | {
|
22 | "expression": "foo.bar[-1]",
|
23 | "result": "two"
|
24 | },
|
25 | {
|
26 | "expression": "foo.bar[-2]",
|
27 | "result": "one"
|
28 | },
|
29 | {
|
30 | "expression": "foo.bar[-3]",
|
31 | "result": "zero"
|
32 | },
|
33 | {
|
34 | "expression": "foo.bar[-4]",
|
35 | "result": null
|
36 | }
|
37 | ]
|
38 | },
|
39 | {
|
40 | "given":
|
41 | {"foo": [{"bar": "one"}, {"bar": "two"}, {"bar": "three"}, {"notbar": "four"}]},
|
42 | "cases": [
|
43 | {
|
44 | "expression": "foo.bar",
|
45 | "result": null
|
46 | },
|
47 | {
|
48 | "expression": "foo[0].bar",
|
49 | "result": "one"
|
50 | },
|
51 | {
|
52 | "expression": "foo[1].bar",
|
53 | "result": "two"
|
54 | },
|
55 | {
|
56 | "expression": "foo[2].bar",
|
57 | "result": "three"
|
58 | },
|
59 | {
|
60 | "expression": "foo[3].notbar",
|
61 | "result": "four"
|
62 | },
|
63 | {
|
64 | "expression": "foo[3].bar",
|
65 | "result": null
|
66 | },
|
67 | {
|
68 | "expression": "foo[0]",
|
69 | "result": {"bar": "one"}
|
70 | },
|
71 | {
|
72 | "expression": "foo[1]",
|
73 | "result": {"bar": "two"}
|
74 | },
|
75 | {
|
76 | "expression": "foo[2]",
|
77 | "result": {"bar": "three"}
|
78 | },
|
79 | {
|
80 | "expression": "foo[3]",
|
81 | "result": {"notbar": "four"}
|
82 | },
|
83 | {
|
84 | "expression": "foo[4]",
|
85 | "result": null
|
86 | }
|
87 | ]
|
88 | },
|
89 | {
|
90 | "given": [
|
91 | "one", "two", "three"
|
92 | ],
|
93 | "cases": [
|
94 | {
|
95 | "expression": "[0]",
|
96 | "result": "one"
|
97 | },
|
98 | {
|
99 | "expression": "[1]",
|
100 | "result": "two"
|
101 | },
|
102 | {
|
103 | "expression": "[2]",
|
104 | "result": "three"
|
105 | },
|
106 | {
|
107 | "expression": "[-1]",
|
108 | "result": "three"
|
109 | },
|
110 | {
|
111 | "expression": "[-2]",
|
112 | "result": "two"
|
113 | },
|
114 | {
|
115 | "expression": "[-3]",
|
116 | "result": "one"
|
117 | }
|
118 | ]
|
119 | },
|
120 | {
|
121 | "given": {"reservations": [
|
122 | {"instances": [{"foo": 1}, {"foo": 2}]}
|
123 | ]},
|
124 | "cases": [
|
125 | {
|
126 | "expression": "reservations[].instances[].foo",
|
127 | "result": [1, 2]
|
128 | },
|
129 | {
|
130 | "expression": "reservations[].instances[].bar",
|
131 | "result": []
|
132 | },
|
133 | {
|
134 | "expression": "reservations[].notinstances[].foo",
|
135 | "result": []
|
136 | },
|
137 | {
|
138 | "expression": "reservations[].notinstances[].foo",
|
139 | "result": []
|
140 | }
|
141 | ]
|
142 | },
|
143 | {
|
144 | "given": {"reservations": [{
|
145 | "instances": [
|
146 | {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]},
|
147 | {"foo": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]},
|
148 | {"foo": "bar"},
|
149 | {"notfoo": [{"bar": 20}, {"bar": 21}, {"notbar": [7]}, {"bar": 22}]},
|
150 | {"bar": [{"baz": [1]}, {"baz": [2]}, {"baz": [3]}, {"baz": [4]}]},
|
151 | {"baz": [{"baz": [1, 2]}, {"baz": []}, {"baz": []}, {"baz": [3, 4]}]},
|
152 | {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]}
|
153 | ],
|
154 | "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}
|
155 | }, {
|
156 | "instances": [
|
157 | {"a": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]},
|
158 | {"b": [{"bar": 5}, {"bar": 6}, {"notbar": [7]}, {"bar": 8}]},
|
159 | {"c": "bar"},
|
160 | {"notfoo": [{"bar": 23}, {"bar": 24}, {"notbar": [7]}, {"bar": 25}]},
|
161 | {"qux": [{"baz": []}, {"baz": [1, 2, 3]}, {"baz": [4]}, {"baz": []}]}
|
162 | ],
|
163 | "otherkey": {"foo": [{"bar": 1}, {"bar": 2}, {"notbar": 3}, {"bar": 4}]}
|
164 | }
|
165 | ]},
|
166 | "cases": [
|
167 | {
|
168 | "expression": "reservations[].instances[].foo[].bar",
|
169 | "result": [1, 2, 4, 5, 6, 8]
|
170 | },
|
171 | {
|
172 | "expression": "reservations[].instances[].foo[].baz",
|
173 | "result": []
|
174 | },
|
175 | {
|
176 | "expression": "reservations[].instances[].notfoo[].bar",
|
177 | "result": [20, 21, 22, 23, 24, 25]
|
178 | },
|
179 | {
|
180 | "expression": "reservations[].instances[].notfoo[].notbar",
|
181 | "result": [[7], [7]]
|
182 | },
|
183 | {
|
184 | "expression": "reservations[].notinstances[].foo",
|
185 | "result": []
|
186 | },
|
187 | {
|
188 | "expression": "reservations[].instances[].foo[].notbar",
|
189 | "result": [3, [7]]
|
190 | },
|
191 | {
|
192 | "expression": "reservations[].instances[].bar[].baz",
|
193 | "result": [[1], [2], [3], [4]]
|
194 | },
|
195 | {
|
196 | "expression": "reservations[].instances[].baz[].baz",
|
197 | "result": [[1, 2], [], [], [3, 4]]
|
198 | },
|
199 | {
|
200 | "expression": "reservations[].instances[].qux[].baz",
|
201 | "result": [[], [1, 2, 3], [4], [], [], [1, 2, 3], [4], []]
|
202 | },
|
203 | {
|
204 | "expression": "reservations[].instances[].qux[].baz[]",
|
205 | "result": [1, 2, 3, 4, 1, 2, 3, 4]
|
206 | }
|
207 | ]
|
208 | },
|
209 | {
|
210 | "given": {
|
211 | "foo": [
|
212 | [["one", "two"], ["three", "four"]],
|
213 | [["five", "six"], ["seven", "eight"]],
|
214 | [["nine"], ["ten"]]
|
215 | ]
|
216 | },
|
217 | "cases": [
|
218 | {
|
219 | "expression": "foo[]",
|
220 | "result": [["one", "two"], ["three", "four"], ["five", "six"],
|
221 | ["seven", "eight"], ["nine"], ["ten"]]
|
222 | },
|
223 | {
|
224 | "expression": "foo[][0]",
|
225 | "result": ["one", "three", "five", "seven", "nine", "ten"]
|
226 | },
|
227 | {
|
228 | "expression": "foo[][1]",
|
229 | "result": ["two", "four", "six", "eight"]
|
230 | },
|
231 | {
|
232 | "expression": "foo[][0][0]",
|
233 | "result": []
|
234 | },
|
235 | {
|
236 | "expression": "foo[][2][2]",
|
237 | "result": []
|
238 | },
|
239 | {
|
240 | "expression": "foo[][0][0][100]",
|
241 | "result": []
|
242 | }
|
243 | ]
|
244 | },
|
245 | {
|
246 | "given": {
|
247 | "foo": [{
|
248 | "bar": [
|
249 | {
|
250 | "qux": 2,
|
251 | "baz": 1
|
252 | },
|
253 | {
|
254 | "qux": 4,
|
255 | "baz": 3
|
256 | }
|
257 | ]
|
258 | },
|
259 | {
|
260 | "bar": [
|
261 | {
|
262 | "qux": 6,
|
263 | "baz": 5
|
264 | },
|
265 | {
|
266 | "qux": 8,
|
267 | "baz": 7
|
268 | }
|
269 | ]
|
270 | }
|
271 | ]
|
272 | },
|
273 | "cases": [
|
274 | {
|
275 | "expression": "foo",
|
276 | "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
|
277 | {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
|
278 | },
|
279 | {
|
280 | "expression": "foo[]",
|
281 | "result": [{"bar": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}]},
|
282 | {"bar": [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]}]
|
283 | },
|
284 | {
|
285 | "expression": "foo[].bar",
|
286 | "result": [[{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3}],
|
287 | [{"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]]
|
288 | },
|
289 | {
|
290 | "expression": "foo[].bar[]",
|
291 | "result": [{"qux": 2, "baz": 1}, {"qux": 4, "baz": 3},
|
292 | {"qux": 6, "baz": 5}, {"qux": 8, "baz": 7}]
|
293 | },
|
294 | {
|
295 | "expression": "foo[].bar[].baz",
|
296 | "result": [1, 3, 5, 7]
|
297 | }
|
298 | ]
|
299 | },
|
300 | {
|
301 | "given": {
|
302 | "string": "string",
|
303 | "hash": {"foo": "bar", "bar": "baz"},
|
304 | "number": 23,
|
305 | "nullvalue": null
|
306 | },
|
307 | "cases": [
|
308 | {
|
309 | "expression": "string[]",
|
310 | "result": null
|
311 | },
|
312 | {
|
313 | "expression": "hash[]",
|
314 | "result": null
|
315 | },
|
316 | {
|
317 | "expression": "number[]",
|
318 | "result": null
|
319 | },
|
320 | {
|
321 | "expression": "nullvalue[]",
|
322 | "result": null
|
323 | },
|
324 | {
|
325 | "expression": "string[].foo",
|
326 | "result": null
|
327 | },
|
328 | {
|
329 | "expression": "hash[].foo",
|
330 | "result": null
|
331 | },
|
332 | {
|
333 | "expression": "number[].foo",
|
334 | "result": null
|
335 | },
|
336 | {
|
337 | "expression": "nullvalue[].foo",
|
338 | "result": null
|
339 | },
|
340 | {
|
341 | "expression": "nullvalue[].foo[].bar",
|
342 | "result": null
|
343 | }
|
344 | ]
|
345 | }
|
346 | ]
|