From 492f8d063f22e12c51b8f7ec3eb67361d53c8b70 Mon Sep 17 00:00:00 2001 From: James Saryerwinnie Date: Fri, 24 Jul 2015 14:54:22 -0700 Subject: [PATCH] Update tests to remove hash key order --- tests/filters.json | 4 +++ tests/functions.json | 16 +++++++-- tests/pipe.json | 48 ++++++++++++++++++------- tests/wildcard.json | 84 ++++++++++++++++++++++++-------------------- 4 files changed, 98 insertions(+), 54 deletions(-) diff --git a/tests/filters.json b/tests/filters.json index d994eca..a07cf38 100644 --- a/tests/filters.json +++ b/tests/filters.json @@ -275,6 +275,10 @@ "expression": "reservations[].instances[?bar==`1`]", "result": [[{"foo": 2, "bar": 1}]] }, + { + "expression": "reservations[*].instances[?bar==`1`]", + "result": [[{"foo": 2, "bar": 1}]] + }, { "expression": "reservations[].instances[?bar==`1`][]", "result": [{"foo": 2, "bar": 1}] diff --git a/tests/functions.json b/tests/functions.json index 485ba07..3ceddd9 100644 --- a/tests/functions.json +++ b/tests/functions.json @@ -324,8 +324,8 @@ "result": "object" }, { - "expression": "keys(objects)", - "result": ["foo", "bar"] + "expression": "sort(keys(objects))", + "result": ["bar", "foo"] }, { "expression": "keys(foo)", @@ -340,7 +340,7 @@ "error": "invalid-type" }, { - "expression": "values(objects)", + "expression": "sort(values(objects))", "result": ["bar", "baz"] }, { @@ -619,6 +619,16 @@ {"age": 50, "age_str": "50", "bool": false, "name": "d"} ] }, + { + "expression": "sort_by(people, &age_str)", + "result": [ + {"age": 10, "age_str": "10", "bool": true, "name": 3}, + {"age": 20, "age_str": "20", "bool": true, "name": "a", "extra": "foo"}, + {"age": 30, "age_str": "30", "bool": true, "name": "c"}, + {"age": 40, "age_str": "40", "bool": false, "name": "b", "extra": "bar"}, + {"age": 50, "age_str": "50", "bool": false, "name": "d"} + ] + }, { "description": "sort by function expression", "expression": "sort_by(people, &to_number(age_str))", diff --git a/tests/pipe.json b/tests/pipe.json index f554bae..b10c0a4 100644 --- a/tests/pipe.json +++ b/tests/pipe.json @@ -2,43 +2,69 @@ "given": { "foo": { "bar": { - "baz": "one" + "baz": "subkey" }, "other": { - "baz": "two" + "baz": "subkey" }, "other2": { - "baz": "three" + "baz": "subkey" }, "other3": { "notbaz": ["a", "b", "c"] }, "other4": { - "notbaz": ["d", "e", "f"] + "notbaz": ["a", "b", "c"] } } }, "cases": [ { "expression": "foo.*.baz | [0]", - "result": "one" + "result": "subkey" }, { "expression": "foo.*.baz | [1]", - "result": "two" + "result": "subkey" }, { "expression": "foo.*.baz | [2]", - "result": "three" + "result": "subkey" }, { "expression": "foo.bar.* | [0]", - "result": "one" + "result": "subkey" }, { "expression": "foo.*.notbaz | [*]", - "result": [["a", "b", "c"], ["d", "e", "f"]] + "result": [["a", "b", "c"], ["a", "b", "c"]] }, + { + "expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz", + "result": ["subkey", "subkey"] + } + ] +}, { + "given": { + "foo": { + "bar": { + "baz": "one" + }, + "other": { + "baz": "two" + }, + "other2": { + "baz": "three" + }, + "other3": { + "notbaz": ["a", "b", "c"] + }, + "other4": { + "notbaz": ["d", "e", "f"] + } + } + }, + "cases": [ { "expression": "foo | bar", "result": {"baz": "one"} @@ -71,10 +97,6 @@ "expression": "{\"a\": foo.bar, \"b\": foo.other} | b", "result": {"baz": "two"} }, - { - "expression": "{\"a\": foo.bar, \"b\": foo.other} | *.baz", - "result": ["one", "two"] - }, { "expression": "foo.bam || foo.bar | baz", "result": "one" diff --git a/tests/wildcard.json b/tests/wildcard.json index 371b5ac..3bcec30 100644 --- a/tests/wildcard.json +++ b/tests/wildcard.json @@ -2,25 +2,25 @@ "given": { "foo": { "bar": { - "baz": "one" + "baz": "val" }, "other": { - "baz": "two" + "baz": "val" }, "other2": { - "baz": "three" + "baz": "val" }, "other3": { "notbaz": ["a", "b", "c"] }, "other4": { - "notbaz": ["d", "e", "f"] + "notbaz": ["a", "b", "c"] }, "other5": { "other": { "a": 1, - "b": 2, - "c": 3 + "b": 1, + "c": 1 } } } @@ -28,43 +28,56 @@ "cases": [ { "expression": "foo.*.baz", - "result": ["one", "two", "three"] + "result": ["val", "val", "val"] }, { "expression": "foo.bar.*", - "result": ["one"] + "result": ["val"] }, { "expression": "foo.*.notbaz", - "result": [["a", "b", "c"], ["d", "e", "f"]] + "result": [["a", "b", "c"], ["a", "b", "c"]] }, { "expression": "foo.*.notbaz[0]", - "result": ["a", "d"] + "result": ["a", "a"] }, { "expression": "foo.*.notbaz[-1]", - "result": ["c", "f"] - }, + "result": ["c", "c"] + } + ] +}, { + "given": { + "foo": { + "first-1": { + "second-1": "val" + }, + "first-2": { + "second-1": "val" + }, + "first-3": { + "second-1": "val" + } + } + }, + "cases": [ { "expression": "foo.*", - "result": [{"baz": "one"}, {"baz": "two"}, {"baz": "three"}, - {"notbaz": ["a", "b", "c"]}, {"notbaz": ["d", "e", "f"]}, - {"other": {"a": 1, "b": 2, "c": 3}}] + "result": [{"second-1": "val"}, {"second-1": "val"}, + {"second-1": "val"}] }, { "expression": "foo.*.*", - "result": [["one"], ["two"], ["three"], - [["a", "b", "c"]], [["d", "e", "f"]], - [{"a": 1, "b": 2, "c": 3}]] + "result": [["val"], ["val"], ["val"]] }, { "expression": "foo.*.*.*", - "result": [[], [], [], [], [], [[1, 2, 3]]] + "result": [[], [], []] }, { "expression": "foo.*.*.*.*", - "result": [[], [], [], [], [], [[]]] + "result": [[], [], []] } ] }, { @@ -73,7 +86,7 @@ "bar": "one" }, "other": { - "bar": "two" + "bar": "one" }, "nomatch": { "notbar": "three" @@ -82,7 +95,7 @@ "cases": [ { "expression": "*.bar", - "result": ["one", "two"] + "result": ["one", "one"] } ] }, { @@ -91,37 +104,32 @@ "sub1": {"foo": "one"} }, "top2": { - "sub1": {"foo": "two"} - }, - "top3": { - "sub3": {"notfoo": "notfoo"} + "sub1": {"foo": "one"} } }, "cases": [ { "expression": "*", "result": [{"sub1": {"foo": "one"}}, - {"sub1": {"foo": "two"}}, - { "sub3": {"notfoo": "notfoo"}}] + {"sub1": {"foo": "one"}}] }, { "expression": "*.sub1", "result": [{"foo": "one"}, - {"foo": "two"}] + {"foo": "one"}] }, { "expression": "*.*", "result": [[{"foo": "one"}], - [{"foo": "two"}], - [{"notfoo": "notfoo"}]] + [{"foo": "one"}]] }, { - "expression": "*.*.foo", - "result": [["one"], ["two"], []] + "expression": "*.*.foo[]", + "result": ["one", "one"] }, { "expression": "*.sub1.foo", - "result": ["one", "two"] + "result": ["one", "one"] } ] }, @@ -409,7 +417,7 @@ { "given": { "string": "string", - "hash": {"foo": "bar", "bar": "baz"}, + "hash": {"foo": "val", "bar": "val"}, "number": 23, "array": [1, 2, 3], "nullvalue": null @@ -421,7 +429,7 @@ }, { "expression": "hash.*", - "result": ["bar", "baz"] + "result": ["val", "val"] }, { "expression": "number.*", @@ -440,12 +448,12 @@ { "given": { "a": [0, 1, 2], - "b": [3, 4, 5] + "b": [0, 1, 2] }, "cases": [ { "expression": "*[0]", - "result": [0, 3] + "result": [0, 0] } ] }