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