github.com/noxiouz/docker@v0.7.3-0.20160629055221-3d231c78e8c5/api/client/swarm/opts_test.go (about) 1 package swarm 2 3 import ( 4 "testing" 5 6 "github.com/docker/docker/pkg/testutil/assert" 7 "github.com/docker/engine-api/types/swarm" 8 ) 9 10 func TestNodeAddrOptionSetHostAndPort(t *testing.T) { 11 opt := NewNodeAddrOption("old:123") 12 addr := "newhost:5555" 13 assert.NilError(t, opt.Set(addr)) 14 assert.Equal(t, opt.Value(), addr) 15 } 16 17 func TestNodeAddrOptionSetHostOnly(t *testing.T) { 18 opt := NewListenAddrOption() 19 assert.NilError(t, opt.Set("newhost")) 20 assert.Equal(t, opt.Value(), "newhost:2377") 21 } 22 23 func TestNodeAddrOptionSetHostOnlyIPv6(t *testing.T) { 24 opt := NewListenAddrOption() 25 assert.NilError(t, opt.Set("::1")) 26 assert.Equal(t, opt.Value(), "[::1]:2377") 27 } 28 29 func TestNodeAddrOptionSetPortOnly(t *testing.T) { 30 opt := NewListenAddrOption() 31 assert.NilError(t, opt.Set(":4545")) 32 assert.Equal(t, opt.Value(), "0.0.0.0:4545") 33 } 34 35 func TestNodeAddrOptionSetInvalidFormat(t *testing.T) { 36 opt := NewListenAddrOption() 37 assert.Error(t, opt.Set("http://localhost:4545"), "Invalid") 38 } 39 40 func TestAutoAcceptOptionSetWorker(t *testing.T) { 41 opt := NewAutoAcceptOption() 42 assert.NilError(t, opt.Set("worker")) 43 assert.Equal(t, opt.values[WORKER], true) 44 } 45 46 func TestAutoAcceptOptionSetManager(t *testing.T) { 47 opt := NewAutoAcceptOption() 48 assert.NilError(t, opt.Set("manager")) 49 assert.Equal(t, opt.values[MANAGER], true) 50 } 51 52 func TestAutoAcceptOptionSetInvalid(t *testing.T) { 53 opt := NewAutoAcceptOption() 54 assert.Error(t, opt.Set("bogus"), "must be one of") 55 } 56 57 func TestAutoAcceptOptionSetNone(t *testing.T) { 58 opt := NewAutoAcceptOption() 59 assert.NilError(t, opt.Set("none")) 60 assert.Equal(t, opt.values[MANAGER], false) 61 assert.Equal(t, opt.values[WORKER], false) 62 } 63 64 func TestAutoAcceptOptionSetConflict(t *testing.T) { 65 opt := NewAutoAcceptOption() 66 assert.NilError(t, opt.Set("manager")) 67 assert.Error(t, opt.Set("none"), "value NONE is incompatible with MANAGER") 68 69 opt = NewAutoAcceptOption() 70 assert.NilError(t, opt.Set("none")) 71 assert.Error(t, opt.Set("worker"), "value NONE is incompatible with WORKER") 72 } 73 74 func TestAutoAcceptOptionPoliciesDefault(t *testing.T) { 75 opt := NewAutoAcceptOption() 76 secret := "thesecret" 77 78 policies := opt.Policies(&secret) 79 assert.Equal(t, len(policies), 2) 80 assert.Equal(t, policies[0], swarm.Policy{ 81 Role: WORKER, 82 Autoaccept: true, 83 Secret: &secret, 84 }) 85 assert.Equal(t, policies[1], swarm.Policy{ 86 Role: MANAGER, 87 Autoaccept: false, 88 Secret: &secret, 89 }) 90 } 91 92 func TestAutoAcceptOptionPoliciesWithManager(t *testing.T) { 93 opt := NewAutoAcceptOption() 94 secret := "thesecret" 95 96 assert.NilError(t, opt.Set("manager")) 97 98 policies := opt.Policies(&secret) 99 assert.Equal(t, len(policies), 2) 100 assert.Equal(t, policies[0], swarm.Policy{ 101 Role: WORKER, 102 Autoaccept: false, 103 Secret: &secret, 104 }) 105 assert.Equal(t, policies[1], swarm.Policy{ 106 Role: MANAGER, 107 Autoaccept: true, 108 Secret: &secret, 109 }) 110 } 111 112 func TestAutoAcceptOptionString(t *testing.T) { 113 opt := NewAutoAcceptOption() 114 assert.NilError(t, opt.Set("manager")) 115 assert.NilError(t, opt.Set("worker")) 116 117 repr := opt.String() 118 assert.Contains(t, repr, "worker=true") 119 assert.Contains(t, repr, "manager=true") 120 }