Add tests for AutoAcceptOption
Signed-off-by: Daniel Nephin <dnephin@docker.com>
(cherry picked from commit c544649874
)
This commit is contained in:
parent
e090e2dbd4
commit
3c35da6029
3 changed files with 87 additions and 4 deletions
|
@ -35,7 +35,7 @@ func newInitCommand(dockerCli *client.DockerCli) *cobra.Command {
|
|||
},
|
||||
}
|
||||
|
||||
flags := cmd.Flags()
|
||||
flags = cmd.Flags()
|
||||
flags.Var(&opts.listenAddr, flagListenAddr, "Listen address")
|
||||
flags.Var(&opts.autoAccept, flagAutoAccept, "Auto acceptance policy (worker, manager, or none)")
|
||||
flags.StringVar(&opts.secret, flagSecret, "", "Set secret value needed to accept nodes into cluster")
|
||||
|
|
|
@ -95,10 +95,10 @@ type AutoAcceptOption struct {
|
|||
// String prints a string representation of this option
|
||||
func (o *AutoAcceptOption) String() string {
|
||||
keys := []string{}
|
||||
for key := range o.values {
|
||||
keys = append(keys, key)
|
||||
for key, value := range o.values {
|
||||
keys = append(keys, fmt.Sprintf("%s=%v", strings.ToLower(key), value))
|
||||
}
|
||||
return strings.Join(keys, " ")
|
||||
return strings.Join(keys, ", ")
|
||||
}
|
||||
|
||||
// Set sets a new value on this option
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/docker/docker/pkg/testutil/assert"
|
||||
"github.com/docker/engine-api/types/swarm"
|
||||
)
|
||||
|
||||
func TestNodeAddrOptionSetHostAndPort(t *testing.T) {
|
||||
|
@ -33,3 +34,85 @@ func TestNodeAddrOptionSetInvalidFormat(t *testing.T) {
|
|||
opt := NewListenAddrOption()
|
||||
assert.Error(t, opt.Set("http://localhost:4545"), "Invalid url")
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionSetWorker(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("worker"))
|
||||
assert.Equal(t, opt.values[WORKER], true)
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionSetManager(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("manager"))
|
||||
assert.Equal(t, opt.values[MANAGER], true)
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionSetInvalid(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.Error(t, opt.Set("bogus"), "must be one of")
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionSetNone(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("none"))
|
||||
assert.Equal(t, opt.values[MANAGER], false)
|
||||
assert.Equal(t, opt.values[WORKER], false)
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionSetConflict(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("manager"))
|
||||
assert.Error(t, opt.Set("none"), "value NONE is incompatible with MANAGER")
|
||||
|
||||
opt = NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("none"))
|
||||
assert.Error(t, opt.Set("worker"), "value NONE is incompatible with WORKER")
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionPoliciesDefault(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
secret := "thesecret"
|
||||
|
||||
policies := opt.Policies(&secret)
|
||||
assert.Equal(t, len(policies), 2)
|
||||
assert.Equal(t, policies[0], swarm.Policy{
|
||||
Role: WORKER,
|
||||
Autoaccept: true,
|
||||
Secret: &secret,
|
||||
})
|
||||
assert.Equal(t, policies[1], swarm.Policy{
|
||||
Role: MANAGER,
|
||||
Autoaccept: false,
|
||||
Secret: &secret,
|
||||
})
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionPoliciesWithManager(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
secret := "thesecret"
|
||||
|
||||
assert.NilError(t, opt.Set("manager"))
|
||||
|
||||
policies := opt.Policies(&secret)
|
||||
assert.Equal(t, len(policies), 2)
|
||||
assert.Equal(t, policies[0], swarm.Policy{
|
||||
Role: WORKER,
|
||||
Autoaccept: false,
|
||||
Secret: &secret,
|
||||
})
|
||||
assert.Equal(t, policies[1], swarm.Policy{
|
||||
Role: MANAGER,
|
||||
Autoaccept: true,
|
||||
Secret: &secret,
|
||||
})
|
||||
}
|
||||
|
||||
func TestAutoAcceptOptionString(t *testing.T) {
|
||||
opt := NewAutoAcceptOption()
|
||||
assert.NilError(t, opt.Set("manager"))
|
||||
assert.NilError(t, opt.Set("worker"))
|
||||
|
||||
repr := opt.String()
|
||||
assert.Contains(t, repr, "worker=true")
|
||||
assert.Contains(t, repr, "manager=true")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue