github.com/toplink-cn/moby@v0.0.0-20240305205811-460b4aebdf81/volume/service/convert_test.go (about) 1 package service 2 3 import ( 4 "testing" 5 6 "github.com/docker/docker/api/types/filters" 7 "gotest.tools/v3/assert" 8 "gotest.tools/v3/assert/cmp" 9 ) 10 11 func TestFilterWithPrune(t *testing.T) { 12 f := filters.NewArgs() 13 assert.NilError(t, withPrune(f)) 14 assert.Check(t, cmp.Len(f.Get("label"), 1)) 15 assert.Check(t, f.Match("label", AnonymousLabel)) 16 17 f = filters.NewArgs( 18 filters.Arg("label", "foo=bar"), 19 filters.Arg("label", "bar=baz"), 20 ) 21 assert.NilError(t, withPrune(f)) 22 23 assert.Check(t, cmp.Len(f.Get("label"), 3)) 24 assert.Check(t, f.Match("label", AnonymousLabel)) 25 assert.Check(t, f.Match("label", "foo=bar")) 26 assert.Check(t, f.Match("label", "bar=baz")) 27 28 f = filters.NewArgs( 29 filters.Arg("label", "foo=bar"), 30 filters.Arg("all", "1"), 31 ) 32 assert.NilError(t, withPrune(f)) 33 34 assert.Check(t, cmp.Len(f.Get("label"), 1)) 35 assert.Check(t, f.Match("label", "foo=bar")) 36 37 f = filters.NewArgs( 38 filters.Arg("label", "foo=bar"), 39 filters.Arg("all", "true"), 40 ) 41 assert.NilError(t, withPrune(f)) 42 43 assert.Check(t, cmp.Len(f.Get("label"), 1)) 44 assert.Check(t, f.Match("label", "foo=bar")) 45 46 f = filters.NewArgs(filters.Arg("all", "0")) 47 assert.NilError(t, withPrune(f)) 48 assert.Check(t, cmp.Len(f.Get("label"), 1)) 49 assert.Check(t, f.Match("label", AnonymousLabel)) 50 51 f = filters.NewArgs(filters.Arg("all", "false")) 52 assert.NilError(t, withPrune(f)) 53 assert.Check(t, cmp.Len(f.Get("label"), 1)) 54 assert.Check(t, f.Match("label", AnonymousLabel)) 55 56 f = filters.NewArgs(filters.Arg("all", "")) 57 assert.ErrorContains(t, withPrune(f), "invalid filter 'all'") 58 59 f = filters.NewArgs( 60 filters.Arg("all", "1"), 61 filters.Arg("all", "0"), 62 ) 63 assert.ErrorContains(t, withPrune(f), "invalid filter 'all") 64 }