...

Text file src/github.com/jmespath/go-jmespath/compliance/wildcard.json

Documentation: github.com/jmespath/go-jmespath/compliance

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

View as plain text