123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package container
- import (
- "testing"
- "github.com/docker/docker/opts"
- "github.com/docker/docker/pkg/testutil/assert"
- )
- func TestBuildContainerListOptions(t *testing.T) {
- filters := opts.NewFilterOpt()
- assert.NilError(t, filters.Set("foo=bar"))
- assert.NilError(t, filters.Set("baz=foo"))
- contexts := []struct {
- psOpts *psOptions
- expectedAll bool
- expectedSize bool
- expectedLimit int
- expectedFilters map[string]string
- }{
- {
- psOpts: &psOptions{
- all: true,
- size: true,
- last: 5,
- filter: filters,
- },
- expectedAll: true,
- expectedSize: true,
- expectedLimit: 5,
- expectedFilters: map[string]string{
- "foo": "bar",
- "baz": "foo",
- },
- },
- {
- psOpts: &psOptions{
- all: true,
- size: true,
- last: -1,
- nLatest: true,
- },
- expectedAll: true,
- expectedSize: true,
- expectedLimit: 1,
- expectedFilters: make(map[string]string),
- },
- {
- psOpts: &psOptions{
- all: true,
- size: false,
- last: 5,
- filter: filters,
- // With .Size, size should be true
- format: "{{.Size}}",
- },
- expectedAll: true,
- expectedSize: true,
- expectedLimit: 5,
- expectedFilters: map[string]string{
- "foo": "bar",
- "baz": "foo",
- },
- },
- {
- psOpts: &psOptions{
- all: true,
- size: false,
- last: 5,
- filter: filters,
- // With .Size, size should be true
- format: "{{.Size}} {{.CreatedAt}} {{.Networks}}",
- },
- expectedAll: true,
- expectedSize: true,
- expectedLimit: 5,
- expectedFilters: map[string]string{
- "foo": "bar",
- "baz": "foo",
- },
- },
- {
- psOpts: &psOptions{
- all: true,
- size: false,
- last: 5,
- filter: filters,
- // Without .Size, size should be false
- format: "{{.CreatedAt}} {{.Networks}}",
- },
- expectedAll: true,
- expectedSize: false,
- expectedLimit: 5,
- expectedFilters: map[string]string{
- "foo": "bar",
- "baz": "foo",
- },
- },
- }
- for _, c := range contexts {
- options, err := buildContainerListOptions(c.psOpts)
- assert.NilError(t, err)
- assert.Equal(t, c.expectedAll, options.All)
- assert.Equal(t, c.expectedSize, options.Size)
- assert.Equal(t, c.expectedLimit, options.Limit)
- assert.Equal(t, options.Filters.Len(), len(c.expectedFilters))
- for k, v := range c.expectedFilters {
- f := options.Filters
- if !f.ExactMatch(k, v) {
- t.Fatalf("Expected filter with key %s to be %s but got %s", k, v, f.Get(k))
- }
- }
- }
- }
|