19
19
package xdsclient
20
20
21
21
import (
22
+ "strings"
22
23
"testing"
23
24
24
25
"google.golang.org/grpc/xds/internal/clients"
@@ -35,22 +36,22 @@ func (s) TestXDSClient_New(t *testing.T) {
35
36
{
36
37
name : "empty node ID" ,
37
38
config : Config {},
38
- wantErr : "xdsclient: node ID is empty" ,
39
+ wantErr : "node ID is empty" ,
39
40
},
40
41
{
41
42
name : "nil resource types" ,
42
43
config : Config {
43
44
Node : clients.Node {ID : "node-id" },
44
45
},
45
- wantErr : "xdsclient: resource types map is nil" ,
46
+ wantErr : "resource types map is nil" ,
46
47
},
47
48
{
48
49
name : "nil transport builder" ,
49
50
config : Config {
50
51
Node : clients.Node {ID : "node-id" },
51
52
ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
52
53
},
53
- wantErr : "xdsclient: transport builder is nil" ,
54
+ wantErr : "transport builder is nil" ,
54
55
},
55
56
{
56
57
name : "no servers or authorities" ,
@@ -59,7 +60,7 @@ func (s) TestXDSClient_New(t *testing.T) {
59
60
ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
60
61
TransportBuilder : grpctransport .NewBuilder (),
61
62
},
62
- wantErr : "xdsclient: no servers or authorities specified" ,
63
+ wantErr : "no servers or authorities specified" ,
63
64
},
64
65
{
65
66
name : "success with servers" ,
@@ -77,10 +78,40 @@ func (s) TestXDSClient_New(t *testing.T) {
77
78
Node : clients.Node {ID : "node-id" },
78
79
ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
79
80
TransportBuilder : grpctransport .NewBuilder (),
80
- Authorities : map [string ]Authority {"authority-name" : {}},
81
+ Authorities : map [string ]Authority {"authority-name" : {XDSServers : [] ServerConfig {{ ServerIdentifier : clients. ServerIdentifier { ServerURI : "dummy-server" }}} }},
81
82
},
82
83
wantErr : "" ,
83
84
},
85
+ {
86
+ name : "success with server identifier extensions with equal" ,
87
+ config : Config {
88
+ Node : clients.Node {ID : "node-id" },
89
+ ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
90
+ TransportBuilder : grpctransport .NewBuilder (),
91
+ Servers : []ServerConfig {{ServerIdentifier : clients.ServerIdentifier {ServerURI : "dummy-server" , Extensions : & testServerIdentifierExtension {x : 1 }}}},
92
+ },
93
+ wantErr : "" ,
94
+ },
95
+ {
96
+ name : "default servers with server identifier extensions without equal" ,
97
+ config : Config {
98
+ Node : clients.Node {ID : "node-id" },
99
+ ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
100
+ TransportBuilder : grpctransport .NewBuilder (),
101
+ Servers : []ServerConfig {{ServerIdentifier : clients.ServerIdentifier {ServerURI : "dummy-server" , Extensions : & testServerIdentifierExtensionWithoutEqual {x : 1 }}}},
102
+ },
103
+ wantErr : "non-nil ServerIdentifier.Extensions without implementing the `func (any) Equal(any) bool` method" ,
104
+ },
105
+ {
106
+ name : "authorities with server identifier extensions without equal" ,
107
+ config : Config {
108
+ Node : clients.Node {ID : "node-id" },
109
+ ResourceTypes : map [string ]ResourceType {xdsresource .V3ListenerURL : listenerType },
110
+ TransportBuilder : grpctransport .NewBuilder (),
111
+ Authorities : map [string ]Authority {"authority-name" : {XDSServers : []ServerConfig {{ServerIdentifier : clients.ServerIdentifier {ServerURI : "dummy-server" , Extensions : & testServerIdentifierExtensionWithoutEqual {x : 1 }}}}}},
112
+ },
113
+ wantErr : "non-nil ServerIdentifier.Extensions without implementing the `func (any) Equal(any) bool` method" ,
114
+ },
84
115
}
85
116
for _ , tt := range tests {
86
117
t .Run (tt .name , func (t * testing.T ) {
@@ -90,7 +121,7 @@ func (s) TestXDSClient_New(t *testing.T) {
90
121
t .Fatalf ("New(%+v) failed: %v" , tt .config , err )
91
122
}
92
123
} else {
93
- if err == nil || err .Error () != tt .wantErr {
124
+ if err == nil || ! strings . Contains ( err .Error (), tt .wantErr ) {
94
125
t .Fatalf ("New(%+v) returned error %v, want error %q" , tt .config , err , tt .wantErr )
95
126
}
96
127
}
0 commit comments