mirror of https://github.com/docker/docs.git
90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
package commands
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"bytes"
|
|
|
|
"github.com/docker/machine/commands/commandstest"
|
|
"github.com/docker/machine/libmachine/host"
|
|
"github.com/docker/machine/libmachine/libmachinetest"
|
|
"github.com/docker/machine/libmachine/mcndockerclient"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCmdVersion(t *testing.T) {
|
|
commandLine := &commandstest.FakeCommandLine{}
|
|
api := &libmachinetest.FakeAPI{}
|
|
|
|
err := cmdVersion(commandLine, api)
|
|
|
|
assert.True(t, commandLine.VersionShown)
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestCmdVersionTooManyNames(t *testing.T) {
|
|
commandLine := &commandstest.FakeCommandLine{
|
|
CliArgs: []string{"machine1", "machine2"},
|
|
}
|
|
api := &libmachinetest.FakeAPI{}
|
|
|
|
err := cmdVersion(commandLine, api)
|
|
|
|
assert.EqualError(t, err, "Error: Expected one machine name as an argument")
|
|
}
|
|
|
|
func TestCmdVersionNotFound(t *testing.T) {
|
|
commandLine := &commandstest.FakeCommandLine{
|
|
CliArgs: []string{"unknown"},
|
|
}
|
|
api := &libmachinetest.FakeAPI{}
|
|
|
|
err := cmdVersion(commandLine, api)
|
|
|
|
assert.EqualError(t, err, `Host does not exist: "unknown"`)
|
|
}
|
|
|
|
func TestCmdVersionOnHost(t *testing.T) {
|
|
defer func(versioner mcndockerclient.DockerVersioner) { mcndockerclient.CurrentDockerVersioner = versioner }(mcndockerclient.CurrentDockerVersioner)
|
|
mcndockerclient.CurrentDockerVersioner = &mcndockerclient.FakeDockerVersioner{Version: "1.9.1"}
|
|
|
|
commandLine := &commandstest.FakeCommandLine{
|
|
CliArgs: []string{"machine"},
|
|
}
|
|
api := &libmachinetest.FakeAPI{
|
|
Hosts: []*host.Host{
|
|
{
|
|
Name: "machine",
|
|
},
|
|
},
|
|
}
|
|
|
|
out := &bytes.Buffer{}
|
|
err := printVersion(commandLine, api, out)
|
|
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "1.9.1\n", out.String())
|
|
}
|
|
|
|
func TestCmdVersionFailure(t *testing.T) {
|
|
defer func(versioner mcndockerclient.DockerVersioner) { mcndockerclient.CurrentDockerVersioner = versioner }(mcndockerclient.CurrentDockerVersioner)
|
|
mcndockerclient.CurrentDockerVersioner = &mcndockerclient.FakeDockerVersioner{Err: errors.New("connection failure")}
|
|
|
|
commandLine := &commandstest.FakeCommandLine{
|
|
CliArgs: []string{"machine"},
|
|
}
|
|
api := &libmachinetest.FakeAPI{
|
|
Hosts: []*host.Host{
|
|
{
|
|
Name: "machine",
|
|
},
|
|
},
|
|
}
|
|
|
|
out := &bytes.Buffer{}
|
|
err := printVersion(commandLine, api, out)
|
|
|
|
assert.EqualError(t, err, "connection failure")
|
|
}
|