17
17
package io .grpc .internal ;
18
18
19
19
import static com .google .common .truth .Truth .assertThat ;
20
- import static org .junit .Assert .assertEquals ;
21
- import static org .junit .Assert .assertNotNull ;
22
20
import static org .junit .Assert .fail ;
23
- import static org .mockito .Mockito .mock ;
24
21
25
- import io .grpc .ChannelLogger ;
26
22
import io .grpc .NameResolver ;
27
- import io .grpc .NameResolver .Args ;
28
- import io .grpc .NameResolver .ServiceConfigParser ;
29
23
import io .grpc .NameResolverProvider ;
30
24
import io .grpc .NameResolverRegistry ;
31
- import io .grpc .ProxyDetector ;
32
- import io .grpc .SynchronizationContext ;
33
25
import io .grpc .inprocess .InProcessSocketAddress ;
34
- import java .lang .Thread .UncaughtExceptionHandler ;
35
26
import java .net .InetSocketAddress ;
36
27
import java .net .URI ;
37
28
import java .util .Collections ;
38
29
import org .junit .Test ;
39
30
import org .junit .runner .RunWith ;
40
31
import org .junit .runners .JUnit4 ;
41
32
42
- /** Unit tests for ManagedChannelImpl#getNameResolver (). */
33
+ /** Unit tests for ManagedChannelImpl#getNameResolverProvider (). */
43
34
@ RunWith (JUnit4 .class )
44
35
public class ManagedChannelImplGetNameResolverTest {
45
- private static final NameResolver .Args NAMERESOLVER_ARGS = NameResolver .Args .newBuilder ()
46
- .setDefaultPort (447 )
47
- .setProxyDetector (mock (ProxyDetector .class ))
48
- .setSynchronizationContext (new SynchronizationContext (mock (UncaughtExceptionHandler .class )))
49
- .setServiceConfigParser (mock (ServiceConfigParser .class ))
50
- .setChannelLogger (mock (ChannelLogger .class ))
51
- .setScheduledExecutorService (new FakeClock ().getScheduledExecutorService ())
52
- .build ();
53
-
54
36
@ Test
55
37
public void invalidUriTarget () {
56
38
testInvalidTarget ("defaultscheme:///[invalid]" );
@@ -68,18 +50,6 @@ public void validAuthorityTarget() throws Exception {
68
50
new URI ("defaultscheme" , "" , "/foo.googleapis.com:8080" , null ));
69
51
}
70
52
71
- @ Test
72
- public void validAuthorityTarget_overrideAuthority () throws Exception {
73
- String target = "foo.googleapis.com:8080" ;
74
- String overrideAuthority = "override.authority" ;
75
- URI expectedUri = new URI ("defaultscheme" , "" , "/foo.googleapis.com:8080" , null );
76
- NameResolverRegistry nameResolverRegistry = getTestRegistry (expectedUri .getScheme ());
77
- NameResolver nameResolver = ManagedChannelImpl .getNameResolver (
78
- target , overrideAuthority , nameResolverRegistry , NAMERESOLVER_ARGS ,
79
- Collections .singleton (InetSocketAddress .class ));
80
- assertThat (nameResolver .getServiceAuthority ()).isEqualTo (overrideAuthority );
81
- }
82
-
83
53
@ Test
84
54
public void validUriTarget () throws Exception {
85
55
testValidTarget ("scheme:///foo.googleapis.com:8080" , "scheme:///foo.googleapis.com:8080" ,
@@ -121,47 +91,12 @@ public void validTargetStartingWithSlash() throws Exception {
121
91
new URI ("defaultscheme" , "" , "//target" , null ));
122
92
}
123
93
124
- @ Test
125
- public void validTargetNoResolver () {
126
- NameResolverRegistry nameResolverRegistry = new NameResolverRegistry ();
127
- NameResolverProvider nameResolverProvider = new NameResolverProvider () {
128
- @ Override
129
- protected boolean isAvailable () {
130
- return true ;
131
- }
132
-
133
- @ Override
134
- protected int priority () {
135
- return 5 ;
136
- }
137
-
138
- @ Override
139
- public NameResolver newNameResolver (URI targetUri , Args args ) {
140
- return null ;
141
- }
142
-
143
- @ Override
144
- public String getDefaultScheme () {
145
- return "defaultscheme" ;
146
- }
147
- };
148
- nameResolverRegistry .register (nameResolverProvider );
149
- try {
150
- ManagedChannelImpl .getNameResolver (
151
- "foo.googleapis.com:8080" , null , nameResolverRegistry , NAMERESOLVER_ARGS ,
152
- Collections .singleton (InetSocketAddress .class ));
153
- fail ("Should fail" );
154
- } catch (IllegalArgumentException e ) {
155
- // expected
156
- }
157
- }
158
-
159
94
@ Test
160
95
public void validTargetNoProvider () {
161
96
NameResolverRegistry nameResolverRegistry = new NameResolverRegistry ();
162
97
try {
163
- ManagedChannelImpl .getNameResolver (
164
- "foo.googleapis.com:8080" , null , nameResolverRegistry , NAMERESOLVER_ARGS ,
98
+ ManagedChannelImpl .getNameResolverProvider (
99
+ "foo.googleapis.com:8080" , nameResolverRegistry ,
165
100
Collections .singleton (InetSocketAddress .class ));
166
101
fail ("Should fail" );
167
102
} catch (IllegalArgumentException e ) {
@@ -173,8 +108,8 @@ public void validTargetNoProvider() {
173
108
public void validTargetProviderAddrTypesNotSupported () {
174
109
NameResolverRegistry nameResolverRegistry = getTestRegistry ("testscheme" );
175
110
try {
176
- ManagedChannelImpl .getNameResolver (
177
- "testscheme:///foo.googleapis.com:8080" , null , nameResolverRegistry , NAMERESOLVER_ARGS ,
111
+ ManagedChannelImpl .getNameResolverProvider (
112
+ "testscheme:///foo.googleapis.com:8080" , nameResolverRegistry ,
178
113
Collections .singleton (InProcessSocketAddress .class ));
179
114
fail ("Should fail" );
180
115
} catch (IllegalArgumentException e ) {
@@ -184,26 +119,23 @@ public void validTargetProviderAddrTypesNotSupported() {
184
119
}
185
120
}
186
121
187
-
188
122
private void testValidTarget (String target , String expectedUriString , URI expectedUri ) {
189
123
NameResolverRegistry nameResolverRegistry = getTestRegistry (expectedUri .getScheme ());
190
- FakeNameResolver nameResolver
191
- = (FakeNameResolver ) ((RetryingNameResolver ) ManagedChannelImpl .getNameResolver (
192
- target , null , nameResolverRegistry , NAMERESOLVER_ARGS ,
193
- Collections .singleton (InetSocketAddress .class ))).getRetriedNameResolver ();
194
- assertNotNull (nameResolver );
195
- assertEquals (expectedUri , nameResolver .uri );
196
- assertEquals (expectedUriString , nameResolver .uri .toString ());
124
+ ManagedChannelImpl .ResolvedNameResolver resolved = ManagedChannelImpl .getNameResolverProvider (
125
+ target , nameResolverRegistry , Collections .singleton (InetSocketAddress .class ));
126
+ assertThat (resolved .provider ).isInstanceOf (FakeNameResolverProvider .class );
127
+ assertThat (resolved .targetUri ).isEqualTo (expectedUri );
128
+ assertThat (resolved .targetUri .toString ()).isEqualTo (expectedUriString );
197
129
}
198
130
199
131
private void testInvalidTarget (String target ) {
200
132
NameResolverRegistry nameResolverRegistry = getTestRegistry ("dns" );
201
133
202
134
try {
203
- FakeNameResolver nameResolver = ( FakeNameResolver ) ManagedChannelImpl .getNameResolver (
204
- target , null , nameResolverRegistry , NAMERESOLVER_ARGS ,
205
- Collections . singleton ( InetSocketAddress . class )) ;
206
- fail ("Should have failed, but got resolver with " + nameResolver . uri );
135
+ ManagedChannelImpl . ResolvedNameResolver resolved = ManagedChannelImpl .getNameResolverProvider (
136
+ target , nameResolverRegistry , Collections . singleton ( InetSocketAddress . class ));
137
+ FakeNameResolverProvider nameResolverProvider = ( FakeNameResolverProvider ) resolved . provider ;
138
+ fail ("Should have failed, but got resolver provider " + nameResolverProvider );
207
139
} catch (IllegalArgumentException e ) {
208
140
// expected
209
141
}
0 commit comments