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  }