remove_test.go 1.0 KB

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