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  }