44 "testing"
55
66 "github.com/stretchr/testify/require"
7+ "google.golang.org/grpc/connectivity"
78
89 balancerConfig "github.com/ydb-platform/ydb-go-sdk/v3/internal/balancer/config"
910 "github.com/ydb-platform/ydb-go-sdk/v3/internal/conn"
@@ -12,57 +13,54 @@ import (
1213
1314func TestPreferLocalDC (t * testing.T ) {
1415 conns := []conn.Info {
15- & mock.ConnInfo { EndpointAddrField : "1" , EndpointLocationField : "1" },
16- & mock.ConnInfo { EndpointAddrField : "2" , ConnState : conn . Online , EndpointLocationField : "2" },
17- & mock.ConnInfo { EndpointAddrField : "3" , ConnState : conn . Online , EndpointLocationField : "2" },
16+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "1" , LocationField : "1" } },
17+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "2" , LocationField : "2" }, StateField : connectivity . Ready },
18+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "3" , LocationField : "2" }, StateField : connectivity . Ready },
1819 }
1920 rr := PreferLocalDC (RandomChoice ())
20- require .False (t , rr .AllowFallback )
21+ require .False (t , rr .AllowFallback () )
2122 require .Equal (t , []conn.Info {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
2223}
2324
2425func TestPreferLocalDCWithFallBack (t * testing.T ) {
2526 conns := []conn.Info {
26- & mock.ConnInfo { EndpointAddrField : "1" , EndpointLocationField : "1" },
27- & mock.ConnInfo { EndpointAddrField : "2" , ConnState : conn . Online , EndpointLocationField : "2" },
28- & mock.ConnInfo { EndpointAddrField : "3" , ConnState : conn . Online , EndpointLocationField : "2" },
27+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "1" , LocationField : "1" } },
28+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "2" , LocationField : "2" }, StateField : connectivity . Ready },
29+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "3" , LocationField : "2" }, StateField : connectivity . Ready },
2930 }
3031 rr := PreferLocalDCWithFallBack (RandomChoice ())
31- require .True (t , rr .AllowFallback )
32+ require .True (t , rr .AllowFallback () )
3233 require .Equal (t , []conn.Info {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
3334}
3435
3536func TestPreferLocations (t * testing.T ) {
3637 conns := []conn.Info {
37- & mock.ConnInfo { EndpointAddrField : "1" , EndpointLocationField : "zero" , ConnState : conn . Online },
38- & mock.ConnInfo { EndpointAddrField : "2" , ConnState : conn . Online , EndpointLocationField : "one" },
39- & mock.ConnInfo { EndpointAddrField : "3" , ConnState : conn . Online , EndpointLocationField : "two" },
38+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "1" , LocationField : "zero" }, StateField : connectivity . Ready },
39+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "2" , LocationField : "one" }, StateField : connectivity . Ready },
40+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "3" , LocationField : "two" }, StateField : connectivity . Ready },
4041 }
4142
4243 rr := PreferLocations (RandomChoice (), "zero" , "two" )
43- require .False (t , rr .AllowFallback )
44+ require .False (t , rr .AllowFallback () )
4445 require .Equal (t , []conn.Info {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
4546}
4647
4748func TestPreferLocationsWithFallback (t * testing.T ) {
4849 conns := []conn.Info {
49- & mock.ConnInfo { EndpointAddrField : "1" , EndpointLocationField : "zero" , ConnState : conn . Online },
50- & mock.ConnInfo { EndpointAddrField : "2" , ConnState : conn . Online , EndpointLocationField : "one" },
51- & mock.ConnInfo { EndpointAddrField : "3" , ConnState : conn . Online , EndpointLocationField : "two" },
50+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "1" , LocationField : "zero" }, StateField : connectivity . Ready },
51+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "2" , LocationField : "one" }, StateField : connectivity . Ready },
52+ & mock.Conn { EndpointField : & mock. Endpoint { AddressField : "3" , LocationField : "two" }, StateField : connectivity . Ready },
5253 }
5354
5455 rr := PreferLocationsWithFallback (RandomChoice (), "zero" , "two" )
55- require .True (t , rr .AllowFallback )
56+ require .True (t , rr .AllowFallback () )
5657 require .Equal (t , []conn.Info {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
5758}
5859
5960func applyPreferFilter (info balancerConfig.Info , b * balancerConfig.Config , conns []conn.Info ) []conn.Info {
60- if b .Filter == nil {
61- b .Filter = filterFunc (func (info balancerConfig.Info , c conn.Info ) bool { return true })
62- }
6361 res := make ([]conn.Info , 0 , len (conns ))
6462 for _ , c := range conns {
65- if b .Filter .Allow (info , c ) {
63+ if b .Filter () .Allow (info , c ) {
6664 res = append (res , c )
6765 }
6866 }
0 commit comments