github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/cli/command/node/remove_test.go (about)

     1  package node
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"io/ioutil"
     7  	"testing"
     8  
     9  	"github.com/docker/docker/cli/internal/test"
    10  	"github.com/docker/docker/pkg/testutil/assert"
    11  )
    12  
    13  func TestNodeRemoveErrors(t *testing.T) {
    14  	testCases := []struct {
    15  		args           []string
    16  		nodeRemoveFunc func() error
    17  		expectedError  string
    18  	}{
    19  		{
    20  			expectedError: "requires at least 1 argument",
    21  		},
    22  		{
    23  			args: []string{"nodeID"},
    24  			nodeRemoveFunc: func() error {
    25  				return fmt.Errorf("error removing the node")
    26  			},
    27  			expectedError: "error removing the node",
    28  		},
    29  	}
    30  	for _, tc := range testCases {
    31  		buf := new(bytes.Buffer)
    32  		cmd := newRemoveCommand(
    33  			test.NewFakeCli(&fakeClient{
    34  				nodeRemoveFunc: tc.nodeRemoveFunc,
    35  			}, buf))
    36  		cmd.SetArgs(tc.args)
    37  		cmd.SetOutput(ioutil.Discard)
    38  		assert.Error(t, cmd.Execute(), tc.expectedError)
    39  	}
    40  }
    41  
    42  func TestNodeRemoveMultiple(t *testing.T) {
    43  	buf := new(bytes.Buffer)
    44  	cmd := newRemoveCommand(test.NewFakeCli(&fakeClient{}, buf))
    45  	cmd.SetArgs([]string{"nodeID1", "nodeID2"})
    46  	assert.NilError(t, cmd.Execute())
    47  }