| package service |
| |
| import ( |
| "testing" |
| |
| "github.com/docker/docker/api/types/filters" |
| "gotest.tools/v3/assert" |
| "gotest.tools/v3/assert/cmp" |
| ) |
| |
| func TestFilterWithPrune(t *testing.T) { |
| f := filters.NewArgs() |
| assert.NilError(t, withPrune(f)) |
| assert.Check(t, cmp.Len(f.Get("label"), 1)) |
| assert.Check(t, f.Match("label", AnonymousLabel)) |
| |
| f = filters.NewArgs( |
| filters.Arg("label", "foo=bar"), |
| filters.Arg("label", "bar=baz"), |
| ) |
| assert.NilError(t, withPrune(f)) |
| |
| assert.Check(t, cmp.Len(f.Get("label"), 3)) |
| assert.Check(t, f.Match("label", AnonymousLabel)) |
| assert.Check(t, f.Match("label", "foo=bar")) |
| assert.Check(t, f.Match("label", "bar=baz")) |
| |
| f = filters.NewArgs( |
| filters.Arg("label", "foo=bar"), |
| filters.Arg("all", "1"), |
| ) |
| assert.NilError(t, withPrune(f)) |
| |
| assert.Check(t, cmp.Len(f.Get("label"), 1)) |
| assert.Check(t, f.Match("label", "foo=bar")) |
| |
| f = filters.NewArgs( |
| filters.Arg("label", "foo=bar"), |
| filters.Arg("all", "true"), |
| ) |
| assert.NilError(t, withPrune(f)) |
| |
| assert.Check(t, cmp.Len(f.Get("label"), 1)) |
| assert.Check(t, f.Match("label", "foo=bar")) |
| |
| f = filters.NewArgs(filters.Arg("all", "0")) |
| assert.NilError(t, withPrune(f)) |
| assert.Check(t, cmp.Len(f.Get("label"), 1)) |
| assert.Check(t, f.Match("label", AnonymousLabel)) |
| |
| f = filters.NewArgs(filters.Arg("all", "false")) |
| assert.NilError(t, withPrune(f)) |
| assert.Check(t, cmp.Len(f.Get("label"), 1)) |
| assert.Check(t, f.Match("label", AnonymousLabel)) |
| |
| f = filters.NewArgs(filters.Arg("all", "")) |
| assert.ErrorContains(t, withPrune(f), "invalid filter 'all'") |
| |
| f = filters.NewArgs( |
| filters.Arg("all", "1"), |
| filters.Arg("all", "0"), |
| ) |
| assert.ErrorContains(t, withPrune(f), "invalid filter 'all") |
| } |