@@ -29,7 +29,8 @@ import (
2929const testCtxKey key = "testkey"
3030
3131func newTestDispatcher () * Dispatcher {
32- d , _ := NewDispatcher ("kubernetes://my-service.my-namespace" ,
32+ d , _ := NewDispatcher (
33+ "kubernetes://my-service.my-namespace" ,
3334 WithKubernetesClientset (fake .NewSimpleClientset ()),
3435 WithDialOptions (
3536 grpc .WithTransportCredentials (insecure .NewCredentials ()),
@@ -38,6 +39,41 @@ func newTestDispatcher() *Dispatcher {
3839 return d
3940}
4041
42+ func TestParseConnectUrl (t * testing.T ) {
43+ tests := []struct {
44+ name string
45+ setUrl string
46+ wantNamespace string
47+ wantServiceName string
48+ wantPort string
49+ }{
50+ {
51+ "default port" ,
52+ "kubernetes://my-service.my-namespace" ,
53+ "my-namespace" ,
54+ "my-service" ,
55+ "50051" ,
56+ },
57+ {
58+ "custom port number" ,
59+ "kubernetes://my-service.my-namespace:1234" ,
60+ "my-namespace" ,
61+ "my-service" ,
62+ "1234" ,
63+ },
64+ }
65+
66+ for _ , tt := range tests {
67+ t .Run (tt .name , func (t * testing.T ) {
68+ args , err := parseConnectUrl (tt .setUrl )
69+ require .Nil (t , err )
70+ require .Equal (t , tt .wantNamespace , args .Namespace )
71+ require .Equal (t , tt .wantServiceName , args .ServiceName )
72+ require .Equal (t , tt .wantPort , args .Port )
73+ })
74+ }
75+ }
76+
4177func TestDispatcherUpdateState (t * testing.T ) {
4278 initialIps := []string {"ip1" , "ip2" }
4379
0 commit comments