@@ -32,20 +32,31 @@ func Test_MultiEcho_Bind(t *testing.T) {
3232 const defaultAddress = ":1323"
3333 t .Run ("group already bound" , func (t * testing.T ) {
3434 m := NewMultiEcho ()
35- err := m .Bind ("" , defaultAddress , func (ipHeader string ) (EchoServer , error ) {
35+ err := m .Bind ("" , [] string { defaultAddress } , func (ipHeader string ) (EchoServer , error ) {
3636 return echo .New (), nil
3737 }, "header" )
3838 require .NoError (t , err )
39- err = m .Bind ("" , defaultAddress , func (ipHeader string ) (EchoServer , error ) {
39+ err = m .Bind ("" , [] string { defaultAddress } , func (ipHeader string ) (EchoServer , error ) {
4040 return echo .New (), nil
4141 }, "header" )
4242 assert .EqualError (t , err , "http bind already exists: /" )
4343 })
4444 t .Run ("error - group contains subpaths" , func (t * testing.T ) {
4545 m := NewMultiEcho ()
46- err := m .Bind ("internal/vdr" , defaultAddress , nil , "" )
46+ err := m .Bind ("internal/vdr" , [] string { defaultAddress } , nil , "" )
4747 assert .EqualError (t , err , "bind can't contain subpaths: internal/vdr" )
4848 })
49+ t .Run ("empty address" , func (t * testing.T ) {
50+ m := NewMultiEcho ()
51+ err := m .Bind ("internal" , []string {"" }, nil , "" )
52+ assert .EqualError (t , err , "empty address" )
53+ })
54+ t .Run ("no addresses" , func (t * testing.T ) {
55+ m := NewMultiEcho ()
56+ err := m .Bind ("internal" , []string {}, nil , "" )
57+ assert .EqualError (t , err , "no addresses" )
58+ })
59+
4960}
5061
5162func Test_MultiEcho_Start (t * testing.T ) {
@@ -55,7 +66,7 @@ func Test_MultiEcho_Start(t *testing.T) {
5566 server .EXPECT ().Start (gomock .Any ()).Return (errors .New ("unable to start" ))
5667
5768 m := NewMultiEcho ()
58- m .Bind ("group2" , ":8080" , func (ipHeader string ) (EchoServer , error ) {
69+ m .Bind ("group2" , [] string { ":8080" } , func (ipHeader string ) (EchoServer , error ) {
5970 return server , nil
6071 }, "header" )
6172 err := m .Start ()
@@ -74,35 +85,42 @@ func Test_MultiEcho(t *testing.T) {
7485 defaultServer .EXPECT ().Start (defaultAddress )
7586
7687 internalServer := NewMockEchoServer (ctrl )
77- internalServer .EXPECT ().Add ("GET" , "/internal/internal-endpoint" , gomock .Any ())
88+ internalServer .EXPECT ().Add (http .MethodGet , "/internal/internal-endpoint" , gomock .Any ())
89+ internalServer .EXPECT ().Add (http .MethodGet , "/status" , gomock .Any ())
7890 internalServer .EXPECT ().Start ("internal:8080" )
7991
8092 publicServer := NewMockEchoServer (ctrl )
8193 publicServer .EXPECT ().Add (http .MethodPost , "/public/pub-endpoint" , gomock .Any ())
8294 publicServer .EXPECT ().Add (http .MethodDelete , "/extra-public/extra-pub-endpoint" , gomock .Any ())
95+ publicServer .EXPECT ().Add (http .MethodGet , "/status" , gomock .Any ())
8396 publicServer .EXPECT ().Start ("public:8080" )
8497
8598 // Bind interfaces
8699 m := NewMultiEcho ()
87- err := m .Bind (RootPath , defaultAddress , func (ipHeader string ) (EchoServer , error ) {
100+ err := m .Bind (RootPath , [] string { defaultAddress } , func (ipHeader string ) (EchoServer , error ) {
88101 return defaultServer , nil
89102 }, "header" )
90103 require .NoError (t , err )
91- err = m .Bind ("internal" , "internal:8080" , func (ipHeader string ) (EchoServer , error ) {
104+ err = m .Bind ("internal" , [] string { "internal:8080" } , func (ipHeader string ) (EchoServer , error ) {
92105 return internalServer , nil
93106 }, "header" )
94107 require .NoError (t , err )
95- err = m .Bind ("public" , "public:8080" , func (ipHeader string ) (EchoServer , error ) {
108+ err = m .Bind ("public" , [] string { "public:8080" } , func (ipHeader string ) (EchoServer , error ) {
96109 return publicServer , nil
97110 }, "header" )
98111 require .NoError (t , err )
99- err = m .Bind ("extra-public" , "public:8080" , func (ipHeader string ) (EchoServer , error ) {
112+ err = m .Bind ("extra-public" , [] string { "public:8080" } , func (ipHeader string ) (EchoServer , error ) {
100113 t .Fatal ("should not be called!" )
101114 return nil , nil
102115 }, "header" )
103116 require .NoError (t , err )
117+ err = m .Bind ("status" , []string {"public:8080" , "internal:8080" }, func (ipHeader string ) (EchoServer , error ) {
118+ return internalServer , nil
119+ }, "header" )
120+ require .NoError (t , err )
104121
105122 m .addFn (http .MethodPost , "/public/pub-endpoint" , nil )
123+ m .addFn (http .MethodGet , "/status" , nil )
106124 m .addFn (http .MethodDelete , "/extra-public/extra-pub-endpoint" , nil )
107125 m .addFn (http .MethodGet , "/internal/internal-endpoint" , nil )
108126 m .addFn (http .MethodPatch , "/other/default-endpoint" , nil )
@@ -129,7 +147,7 @@ func Test_MultiEcho_Methods(t *testing.T) {
129147 )
130148
131149 m := NewMultiEcho ()
132- m .Bind (RootPath , ":1323" , func (ipHeader string ) (EchoServer , error ) {
150+ m .Bind (RootPath , [] string { ":1323" } , func (ipHeader string ) (EchoServer , error ) {
133151 return defaultServer , nil
134152 }, "header" )
135153 m .GET ("/get" , nil )
0 commit comments