| 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") | |
| } |