forked from docker/machine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprovision_test.go
67 lines (61 loc) · 1.7 KB
/
provision_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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/auth"
"github.com/docker/machine/libmachine/engine"
"github.com/docker/machine/libmachine/host"
"github.com/docker/machine/libmachine/libmachinetest"
"github.com/docker/machine/libmachine/provision"
"github.com/docker/machine/libmachine/swarm"
"github.com/stretchr/testify/assert"
)
func TestCmdProvision(t *testing.T) {
testCases := []struct {
commandLine CommandLine
api libmachine.API
expectedErr error
}{
{
commandLine: &commandstest.FakeCommandLine{
CliArgs: []string{"foo", "bar"},
},
api: &libmachinetest.FakeAPI{
Hosts: []*host.Host{
{
Name: "foo",
Driver: &fakedriver.Driver{},
HostOptions: &host.Options{
EngineOptions: &engine.Options{},
AuthOptions: &auth.Options{},
SwarmOptions: &swarm.Options{},
},
},
{
Name: "bar",
Driver: &fakedriver.Driver{},
HostOptions: &host.Options{
EngineOptions: &engine.Options{},
AuthOptions: &auth.Options{},
SwarmOptions: &swarm.Options{},
},
},
},
},
expectedErr: nil,
},
}
provision.SetDetector(&provision.FakeDetector{
Provisioner: provision.NewFakeProvisioner(nil),
})
// fakeprovisioner always returns "true" for compatible host, so we
// just need to register it.
provision.Register("fakeprovisioner", &provision.RegisteredProvisioner{
New: provision.NewFakeProvisioner,
})
for _, tc := range testCases {
assert.Equal(t, tc.expectedErr, cmdProvision(tc.commandLine, tc.api))
}
}