github.com/AliyunContainerService/cli@v0.0.0-20181009023821-814ced4b30d0/cli/command/volume/remove_test.go (about)

     1  package volume
     2  
     3  import (
     4  	"io/ioutil"
     5  	"testing"
     6  
     7  	"github.com/docker/cli/internal/test"
     8  	"github.com/pkg/errors"
     9  	"gotest.tools/assert"
    10  )
    11  
    12  func TestVolumeRemoveErrors(t *testing.T) {
    13  	testCases := []struct {
    14  		args             []string
    15  		volumeRemoveFunc func(volumeID string, force bool) error
    16  		expectedError    string
    17  	}{
    18  		{
    19  			expectedError: "requires at least 1 argument",
    20  		},
    21  		{
    22  			args: []string{"nodeID"},
    23  			volumeRemoveFunc: func(volumeID string, force bool) error {
    24  				return errors.Errorf("error removing the volume")
    25  			},
    26  			expectedError: "error removing the volume",
    27  		},
    28  	}
    29  	for _, tc := range testCases {
    30  		cmd := newRemoveCommand(
    31  			test.NewFakeCli(&fakeClient{
    32  				volumeRemoveFunc: tc.volumeRemoveFunc,
    33  			}))
    34  		cmd.SetArgs(tc.args)
    35  		cmd.SetOutput(ioutil.Discard)
    36  		assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
    37  	}
    38  }
    39  
    40  func TestNodeRemoveMultiple(t *testing.T) {
    41  	cmd := newRemoveCommand(test.NewFakeCli(&fakeClient{}))
    42  	cmd.SetArgs([]string{"volume1", "volume2"})
    43  	assert.NilError(t, cmd.Execute())
    44  }