11package dataplane
22
33import (
4+ "context"
45 "fmt"
56 "testing"
67
@@ -15,43 +16,44 @@ func TestAddressFinder(t *testing.T) {
1516 require .Nil (t , finder .addressGetter )
1617
1718 t .Log ("verifying that a finder with no overrides or getter produces an error" )
18- addrs , err := finder .GetAddresses ()
19+ ctx := context .Background ()
20+ addrs , err := finder .GetAddresses (ctx )
1921 require .Error (t , err )
2022 require .Empty (t , addrs )
2123 require .Equal (t , "data-plane addresses can't be retrieved: no valid method available" , err .Error ())
2224
2325 t .Log ("generating a fake AddressGetter" )
2426 defaultAddrs := []string {"127.0.0.1" , "127.0.0.2" }
2527 overrideAddrs := []string {"192.168.1.1" , "192.168.1.2" , "192.168.1.3" }
26- fakeGetter := func () ([]string , error ) { return defaultAddrs , nil }
28+ fakeGetter := func (ctx context. Context ) ([]string , error ) { return defaultAddrs , nil }
2729
2830 t .Log ("verifying getting a list of addresses from the finder after a getter function is provided" )
2931 finder .SetGetter (fakeGetter )
30- addrs , err = finder .GetAddresses ()
32+ addrs , err = finder .GetAddresses (ctx )
3133 require .NoError (t , err )
3234 require .Equal (t , defaultAddrs , addrs )
3335
3436 t .Log ("verifying that overrides take precedent over the getter" )
3537 finder .SetOverrides (overrideAddrs )
36- addrs , err = finder .GetAddresses ()
38+ addrs , err = finder .GetAddresses (ctx )
3739 require .NoError (t , err )
3840 require .Equal (t , overrideAddrs , addrs )
3941
4042 t .Log ("verifying disabling overrides" )
4143 finder .SetOverrides (nil )
42- addrs , err = finder .GetAddresses ()
44+ addrs , err = finder .GetAddresses (ctx )
4345 require .NoError (t , err )
4446 require .Equal (t , defaultAddrs , addrs )
4547
4648 t .Log ("verifying k8s load balancer formatted version of the addresses" )
47- lbs , err := finder .GetLoadBalancerAddresses ()
49+ lbs , err := finder .GetLoadBalancerAddresses (ctx )
4850 require .NoError (t , err )
4951 require .Equal (t , []netv1.IngressLoadBalancerIngress {{IP : defaultAddrs [0 ]}, {IP : defaultAddrs [1 ]}}, lbs )
5052
5153 t .Log ("verifying valid DNS names are formatting properly" )
5254 dnsAddrs := []string {"127.0.0.1" , "example1.konghq.com" , "example2.konghq.com" }
5355 finder .SetOverrides (dnsAddrs )
54- lbs , err = finder .GetLoadBalancerAddresses ()
56+ lbs , err = finder .GetLoadBalancerAddresses (ctx )
5557 require .NoError (t , err )
5658 require .Equal (t , []netv1.IngressLoadBalancerIngress {
5759 {IP : dnsAddrs [0 ]},
@@ -61,16 +63,55 @@ func TestAddressFinder(t *testing.T) {
6163
6264 t .Log ("verifying empty addresses return an error" )
6365 finder .SetOverrides ([]string {"" })
64- lbs , err = finder .GetLoadBalancerAddresses ()
66+ lbs , err = finder .GetLoadBalancerAddresses (ctx )
6567 require .Error (t , err )
6668 require .Empty (t , lbs )
6769 require .Equal (t , "empty address found" , err .Error ())
6870
6971 t .Log ("verifying invalid DNS names return an error" )
7072 invalidDNSAddrs := []
string {
"[email protected] " }
7173 finder .SetOverrides (invalidDNSAddrs )
72- lbs , err = finder .GetLoadBalancerAddresses ()
74+ lbs , err = finder .GetLoadBalancerAddresses (ctx )
7375 require .Error (t , err )
7476 require .Empty (t , lbs )
7577 require .Equal (t , fmt .Sprintf ("%s is not a valid DNS hostname" , invalidDNSAddrs [0 ]), err .Error ())
7678}
79+
80+ func TestUDPAddressFinder (t * testing.T ) {
81+ t .Log ("generating a new AddressFinder" )
82+ finder := NewAddressFinder ()
83+ require .NotNil (t , finder )
84+ require .Nil (t , finder .addressGetter )
85+
86+ t .Log ("generating fake AddressGetters" )
87+ ctx := context .Background ()
88+ defaultAddrs := []string {"127.0.0.1" , "127.0.0.2" }
89+ overrideAddrs := []string {"192.168.1.1" , "192.168.1.2" , "192.168.1.3" }
90+ fakeGetter := func (ctx context.Context ) ([]string , error ) { return defaultAddrs , nil }
91+
92+ defaultUDPAddrs := []string {"127.1.0.1" , "127.1.0.2" }
93+ overrideUDPAddrs := []string {"192.168.2.1" , "192.168.2.2" , "192.168.2.3" }
94+ fakeUDPGetter := func (ctx context.Context ) ([]string , error ) { return defaultUDPAddrs , nil }
95+
96+ t .Log ("verifying getting a list of addresses from the finder after a getter function is provided" )
97+ finder .SetGetter (fakeGetter )
98+ addrs , err := finder .GetUDPAddresses (ctx )
99+ require .NoError (t , err )
100+ require .Equal (t , defaultAddrs , addrs )
101+
102+ t .Log ("verifying that overrides take precedent over the getter" )
103+ finder .SetOverrides (overrideAddrs )
104+ addrs , err = finder .GetAddresses (ctx )
105+ require .NoError (t , err )
106+ require .Equal (t , overrideAddrs , addrs )
107+
108+ finder .SetGetter (fakeUDPGetter )
109+ addrs , err = finder .GetUDPAddresses (ctx )
110+ require .NoError (t , err )
111+ require .Equal (t , defaultUDPAddrs , addrs )
112+
113+ finder .SetUDPOverrides (overrideUDPAddrs )
114+ addrs , err = finder .GetUDPAddresses (ctx )
115+ require .NoError (t , err )
116+ require .Equal (t , overrideUDPAddrs , addrs )
117+ }
0 commit comments