@@ -279,6 +279,11 @@ public String getPolicyName() {
279
279
ArgumentCaptor .forClass (ClientStreamListener .class );
280
280
281
281
private void createChannel (ClientInterceptor ... interceptors ) {
282
+ createChannel (false , interceptors );
283
+ }
284
+
285
+ private void createChannel (boolean nameResolutionExpectedToFail ,
286
+ ClientInterceptor ... interceptors ) {
282
287
checkState (channel == null );
283
288
284
289
channel = new ManagedChannelImpl (
@@ -287,7 +292,7 @@ channelBuilder, mockTransportFactory, new FakeBackoffPolicyProvider(),
287
292
timer .getTimeProvider ());
288
293
289
294
if (requestConnection ) {
290
- int numExpectedTasks = 0 ;
295
+ int numExpectedTasks = nameResolutionExpectedToFail ? 1 : 0 ;
291
296
292
297
// Force-exit the initial idle-mode
293
298
channel .syncContext .execute (new Runnable () {
@@ -2955,7 +2960,7 @@ public void channelTracing_nameResolvingErrorEvent() throws Exception {
2955
2960
FakeNameResolverFactory nameResolverFactory =
2956
2961
new FakeNameResolverFactory .Builder (expectedUri ).setError (error ).build ();
2957
2962
channelBuilder .nameResolverFactory (nameResolverFactory );
2958
- createChannel ();
2963
+ createChannel (true );
2959
2964
2960
2965
assertThat (getStats (channel ).channelTrace .events ).contains (new ChannelTrace .Event .Builder ()
2961
2966
.setDescription ("Failed to resolve name: " + error )
@@ -3458,10 +3463,11 @@ public double nextDouble() {
3458
3463
ArgumentCaptor <Helper > helperCaptor = ArgumentCaptor .forClass (Helper .class );
3459
3464
verify (mockLoadBalancerProvider ).newLoadBalancer (helperCaptor .capture ());
3460
3465
helper = helperCaptor .getValue ();
3461
- verify (mockLoadBalancer ).acceptResolvedAddresses (
3462
- ResolvedAddresses .newBuilder ()
3463
- .setAddresses (nameResolverFactory .servers )
3464
- .build ());
3466
+ verify (mockLoadBalancer ).acceptResolvedAddresses (resolvedAddressCaptor .capture ());
3467
+ ResolvedAddresses resolvedAddresses = resolvedAddressCaptor .getValue ();
3468
+ assertThat (resolvedAddresses .getAddresses ()).isEqualTo (nameResolverFactory .servers );
3469
+ assertThat (resolvedAddresses .getAttributes ()
3470
+ .get (RetryingNameResolver .RESOLUTION_RESULT_LISTENER_KEY )).isNotNull ();
3465
3471
3466
3472
// simulating request connection and then transport ready after resolved address
3467
3473
Subchannel subchannel =
@@ -3564,10 +3570,11 @@ public void hedgingScheduledThenChannelShutdown_hedgeShouldStillHappen_newCallSh
3564
3570
ArgumentCaptor <Helper > helperCaptor = ArgumentCaptor .forClass (Helper .class );
3565
3571
verify (mockLoadBalancerProvider ).newLoadBalancer (helperCaptor .capture ());
3566
3572
helper = helperCaptor .getValue ();
3567
- verify (mockLoadBalancer ).acceptResolvedAddresses (
3568
- ResolvedAddresses .newBuilder ()
3569
- .setAddresses (nameResolverFactory .servers )
3570
- .build ());
3573
+ verify (mockLoadBalancer ).acceptResolvedAddresses (resolvedAddressCaptor .capture ());
3574
+ ResolvedAddresses resolvedAddresses = resolvedAddressCaptor .getValue ();
3575
+ assertThat (resolvedAddresses .getAddresses ()).isEqualTo (nameResolverFactory .servers );
3576
+ assertThat (resolvedAddresses .getAttributes ()
3577
+ .get (RetryingNameResolver .RESOLUTION_RESULT_LISTENER_KEY )).isNotNull ();
3571
3578
3572
3579
// simulating request connection and then transport ready after resolved address
3573
3580
Subchannel subchannel =
0 commit comments