You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

69 lines
1.8 KiB

package pb
import (
"reflect"
"testing"
)
func TestServerAddresses_ToAddressMapOrSrv_shouldRemovePrefix(t *testing.T) {
str := ServerAddresses("dnssrv+hello.srv.consul")
d := str.ToServiceDiscovery()
expected := ServerSrvAddress("hello.srv.consul")
if *d.srvRecord != expected {
t.Fatalf(`ServerAddresses("dnssrv+hello.srv.consul") = %s, expected %s`, *d.srvRecord, expected)
}
}
func TestServerAddresses_ToAddressMapOrSrv_shouldHandleIPPortList(t *testing.T) {
str := ServerAddresses("10.0.0.1:23,10.0.0.2:24")
d := str.ToServiceDiscovery()
if d.srvRecord != nil {
t.Fatalf(`ServerAddresses("dnssrv+hello.srv.consul") = %s, expected nil`, *d.srvRecord)
}
expected := []ServerAddress{
ServerAddress("10.0.0.1:23"),
ServerAddress("10.0.0.2:24"),
}
if !reflect.DeepEqual(d.list, expected) {
t.Fatalf(`Expected %q, got %q`, expected, d.list)
}
}
func TestIPv6ServerAddressFormatting(t *testing.T) {
testCases := []struct {
name string
sa ServerAddress
expectedHttp string
expectedGrpc string
}{
{
name: "unbracketed IPv6",
sa: NewServerAddress("2001:db8::1", 8080, 18080),
expectedHttp: "[2001:db8::1]:8080",
expectedGrpc: "[2001:db8::1]:18080",
},
{
name: "bracketed IPv6",
sa: NewServerAddressWithGrpcPort("[2001:db8::1]:8080", 18080),
expectedHttp: "[2001:db8::1]:8080",
expectedGrpc: "[2001:db8::1]:18080",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
if httpAddr := tc.sa.ToHttpAddress(); httpAddr != tc.expectedHttp {
t.Errorf("%s: ToHttpAddress() = %s, want %s", tc.name, httpAddr, tc.expectedHttp)
}
if grpcAddr := tc.sa.ToGrpcAddress(); grpcAddr != tc.expectedGrpc {
t.Errorf("%s: ToGrpcAddress() = %s, want %s", tc.name, grpcAddr, tc.expectedGrpc)
}
})
}
}