mirror of https://github.com/docker/docs.git
104 lines
2.2 KiB
Go
104 lines
2.2 KiB
Go
package commands
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/docker/machine/commands/commandstest"
|
|
"github.com/docker/machine/drivers/fakedriver"
|
|
"github.com/docker/machine/libmachine"
|
|
"github.com/docker/machine/libmachine/host"
|
|
"github.com/docker/machine/libmachine/libmachinetest"
|
|
"github.com/docker/machine/libmachine/state"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCmdStop(t *testing.T) {
|
|
testCases := []struct {
|
|
commandLine CommandLine
|
|
api libmachine.API
|
|
expectedErr error
|
|
expectedStates map[string]state.State
|
|
}{
|
|
{
|
|
commandLine: &commandstest.FakeCommandLine{
|
|
CliArgs: []string{},
|
|
},
|
|
api: &libmachinetest.FakeAPI{
|
|
Hosts: []*host.Host{
|
|
{
|
|
Name: "default",
|
|
Driver: &fakedriver.Driver{
|
|
MockState: state.Running,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
expectedErr: nil,
|
|
expectedStates: map[string]state.State{
|
|
"default": state.Stopped,
|
|
},
|
|
},
|
|
{
|
|
commandLine: &commandstest.FakeCommandLine{
|
|
CliArgs: []string{},
|
|
},
|
|
api: &libmachinetest.FakeAPI{
|
|
Hosts: []*host.Host{
|
|
{
|
|
Name: "foobar",
|
|
Driver: &fakedriver.Driver{
|
|
MockState: state.Running,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
expectedErr: ErrNoDefault,
|
|
expectedStates: map[string]state.State{
|
|
"foobar": state.Running,
|
|
},
|
|
},
|
|
{
|
|
commandLine: &commandstest.FakeCommandLine{
|
|
CliArgs: []string{"machineToStop1", "machineToStop2"},
|
|
},
|
|
api: &libmachinetest.FakeAPI{
|
|
Hosts: []*host.Host{
|
|
{
|
|
Name: "machineToStop1",
|
|
Driver: &fakedriver.Driver{
|
|
MockState: state.Running,
|
|
},
|
|
},
|
|
{
|
|
Name: "machineToStop2",
|
|
Driver: &fakedriver.Driver{
|
|
MockState: state.Running,
|
|
},
|
|
},
|
|
{
|
|
Name: "machine",
|
|
Driver: &fakedriver.Driver{
|
|
MockState: state.Running,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
expectedErr: nil,
|
|
expectedStates: map[string]state.State{
|
|
"machineToStop1": state.Stopped,
|
|
"machineToStop2": state.Stopped,
|
|
"machine": state.Running,
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
err := cmdStop(tc.commandLine, tc.api)
|
|
assert.Equal(t, tc.expectedErr, err)
|
|
|
|
for hostName, expectedState := range tc.expectedStates {
|
|
assert.Equal(t, expectedState, libmachinetest.State(tc.api, hostName))
|
|
}
|
|
}
|
|
}
|