github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+incompatible/cli/command/container/rm_test.go (about) 1 package container 2 3 import ( 4 "context" 5 "fmt" 6 "io/ioutil" 7 "sort" 8 "testing" 9 10 "github.com/docker/cli/internal/test" 11 "github.com/docker/docker/api/types" 12 "github.com/docker/docker/errdefs" 13 "gotest.tools/v3/assert" 14 ) 15 16 func TestRemoveForce(t *testing.T) { 17 var removed []string 18 19 cli := test.NewFakeCli(&fakeClient{ 20 containerRemoveFunc: func(ctx context.Context, container string, options types.ContainerRemoveOptions) error { 21 removed = append(removed, container) 22 if container == "nosuchcontainer" { 23 return errdefs.NotFound(fmt.Errorf("Error: No such container: " + container)) 24 } 25 return nil 26 }, 27 Version: "1.36", 28 }) 29 cmd := NewRmCommand(cli) 30 cmd.SetOut(ioutil.Discard) 31 32 t.Run("without force", func(t *testing.T) { 33 cmd.SetArgs([]string{"nosuchcontainer", "mycontainer"}) 34 removed = []string{} 35 assert.ErrorContains(t, cmd.Execute(), "No such container") 36 sort.Strings(removed) 37 assert.DeepEqual(t, removed, []string{"mycontainer", "nosuchcontainer"}) 38 }) 39 t.Run("with force", func(t *testing.T) { 40 cmd.SetArgs([]string{"--force", "nosuchcontainer", "mycontainer"}) 41 removed = []string{} 42 assert.NilError(t, cmd.Execute()) 43 sort.Strings(removed) 44 assert.DeepEqual(t, removed, []string{"mycontainer", "nosuchcontainer"}) 45 }) 46 }