@@ -4,65 +4,63 @@ import (
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" 
1011	"github.com/ydb-platform/ydb-go-sdk/v3/internal/mock" 
1112)
1213
1314func  TestPreferLocalDC (t  * testing.T ) {
14- 	conns  :=  []conn.Conn {
15- 		& mock.Conn {AddrField :  "1" , LocationField : "1" },
16- 		& mock.Conn {AddrField :  "2" , State :  conn . Online ,  LocationField : "2" },
17- 		& mock.Conn {AddrField :  "3" , State :  conn . Online ,  LocationField : "2" },
15+ 	conns  :=  []conn.Info {
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 .Equal (t , []conn.Conn {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
21+ 	require .False (t , rr .AllowFallback () )
22+ 	require .Equal (t , []conn.Info {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
2223}
2324
2425func  TestPreferLocalDCWithFallBack (t  * testing.T ) {
25- 	conns  :=  []conn.Conn {
26- 		& mock.Conn {AddrField :  "1" , LocationField : "1" },
27- 		& mock.Conn {AddrField :  "2" , State :  conn . Online ,  LocationField : "2" },
28- 		& mock.Conn {AddrField :  "3" , State :  conn . Online ,  LocationField : "2" },
26+ 	conns  :=  []conn.Info {
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 .Equal (t , []conn.Conn {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
32+ 	require .True (t , rr .AllowFallback () )
33+ 	require .Equal (t , []conn.Info {conns [1 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {SelfLocation : "2" }, rr , conns ))
3334}
3435
3536func  TestPreferLocations (t  * testing.T ) {
36- 	conns  :=  []conn.Conn {
37- 		& mock.Conn {AddrField :  "1" , LocationField : "zero" ,  State :  conn . Online },
38- 		& mock.Conn {AddrField :  "2" , State :  conn . Online ,  LocationField : "one" },
39- 		& mock.Conn {AddrField :  "3" , State :  conn . Online ,  LocationField : "two" },
37+ 	conns  :=  []conn.Info {
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 .Equal (t , []conn.Conn {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
44+ 	require .False (t , rr .AllowFallback () )
45+ 	require .Equal (t , []conn.Info {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
4546}
4647
4748func  TestPreferLocationsWithFallback (t  * testing.T ) {
48- 	conns  :=  []conn.Conn {
49- 		& mock.Conn {AddrField :  "1" , LocationField : "zero" ,  State :  conn . Online },
50- 		& mock.Conn {AddrField :  "2" , State :  conn . Online ,  LocationField : "one" },
51- 		& mock.Conn {AddrField :  "3" , State :  conn . Online ,  LocationField : "two" },
49+ 	conns  :=  []conn.Info {
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 .Equal (t , []conn.Conn {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
56+ 	require .True (t , rr .AllowFallback () )
57+ 	require .Equal (t , []conn.Info {conns [0 ], conns [2 ]}, applyPreferFilter (balancerConfig.Info {}, rr , conns ))
5758}
5859
59- func  applyPreferFilter (info  balancerConfig.Info , b  * balancerConfig.Config , conns  []conn.Conn ) []conn.Conn  {
60- 	if  b .Filter  ==  nil  {
61- 		b .Filter  =  filterFunc (func (info  balancerConfig.Info , c  conn.Conn ) bool  { return  true  })
62- 	}
63- 	res  :=  make ([]conn.Conn , 0 , len (conns ))
60+ func  applyPreferFilter (info  balancerConfig.Info , b  * balancerConfig.Config , conns  []conn.Info ) []conn.Info  {
61+ 	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