github.com/xmidt-org/webpa-common@v1.11.9/service/zk/options_test.go (about) 1 package zk 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func testRegistrationDefault(t *testing.T, r Registration) { 11 assert := assert.New(t) 12 13 assert.Equal(DefaultServiceName, r.name()) 14 assert.Equal(DefaultPath, r.path()) 15 assert.Equal(DefaultAddress, r.address()) 16 assert.Equal(DefaultPort, r.port()) 17 assert.Equal(DefaultScheme, r.scheme()) 18 } 19 20 func testRegistrationCustom(t *testing.T) { 21 var ( 22 assert = assert.New(t) 23 r = Registration{ 24 Name: "testService", 25 Path: "/testy/test/test", 26 Address: "funzo.net", 27 Port: 1234, 28 Scheme: "ftp", 29 } 30 ) 31 32 assert.Equal("testService", r.name()) 33 assert.Equal("/testy/test/test", r.path()) 34 assert.Equal("funzo.net", r.address()) 35 assert.Equal(1234, r.port()) 36 assert.Equal("ftp", r.scheme()) 37 } 38 39 func TestRegistration(t *testing.T) { 40 t.Run("Default", func(t *testing.T) { 41 testRegistrationDefault(t, Registration{}) 42 }) 43 44 t.Run("Custom", testRegistrationCustom) 45 } 46 47 func testClientDefault(t *testing.T, c *Client) { 48 assert := assert.New(t) 49 50 assert.Equal([]string{DefaultServer}, c.servers()) 51 assert.Equal(DefaultConnectTimeout, c.connectTimeout()) 52 assert.Equal(DefaultSessionTimeout, c.sessionTimeout()) 53 } 54 55 func testClientCustom(t *testing.T) { 56 var ( 57 assert = assert.New(t) 58 c = Client{ 59 Connection: "localhost:1234", 60 Servers: []string{"somewhere.com:8888"}, 61 ConnectTimeout: 13 * time.Hour, 62 SessionTimeout: 1239 * time.Minute, 63 } 64 ) 65 66 assert.Equal([]string{"localhost:1234", "somewhere.com:8888"}, c.servers()) 67 assert.Equal(13*time.Hour, c.connectTimeout()) 68 assert.Equal(1239*time.Minute, c.sessionTimeout()) 69 } 70 71 func TestClient(t *testing.T) { 72 t.Run("Default", func(t *testing.T) { 73 testClientDefault(t, nil) 74 testClientDefault(t, new(Client)) 75 }) 76 77 t.Run("Custom", testClientCustom) 78 } 79 80 func testOptionsDefault(t *testing.T, o *Options) { 81 var ( 82 assert = assert.New(t) 83 c = o.client() 84 ) 85 86 assert.Equal([]string{DefaultServer}, c.servers()) 87 assert.Equal(DefaultConnectTimeout, c.connectTimeout()) 88 assert.Equal(DefaultSessionTimeout, c.sessionTimeout()) 89 assert.Len(o.registrations(), 0) 90 assert.Len(o.watches(), 0) 91 } 92 93 func testOptionsCustom(t *testing.T) { 94 var ( 95 assert = assert.New(t) 96 o = Options{ 97 Client: Client{ 98 Connection: "localhost:1234", 99 Servers: []string{"somewhere.com:8888"}, 100 ConnectTimeout: 13 * time.Hour, 101 SessionTimeout: 1239 * time.Minute, 102 }, 103 Registrations: []Registration{ 104 Registration{ 105 Name: "testService", 106 Path: "/testy/test/test", 107 Address: "funzo.net", 108 Port: 1234, 109 Scheme: "ftp", 110 }, 111 }, 112 Watches: []string{"/testy/test/test"}, 113 } 114 115 c = o.client() 116 ) 117 118 assert.Equal([]string{"localhost:1234", "somewhere.com:8888"}, c.servers()) 119 assert.Equal(13*time.Hour, c.connectTimeout()) 120 assert.Equal(1239*time.Minute, c.sessionTimeout()) 121 assert.Equal( 122 []Registration{ 123 Registration{ 124 Name: "testService", 125 Path: "/testy/test/test", 126 Address: "funzo.net", 127 Port: 1234, 128 Scheme: "ftp", 129 }, 130 }, 131 o.registrations(), 132 ) 133 134 assert.Equal([]string{"/testy/test/test"}, o.watches()) 135 } 136 137 func TestOptions(t *testing.T) { 138 t.Run("Default", func(t *testing.T) { 139 testOptionsDefault(t, nil) 140 testOptionsDefault(t, new(Options)) 141 }) 142 143 t.Run("Custom", testOptionsCustom) 144 }