@@ -280,6 +280,11 @@ public String getPolicyName() {
280280 ArgumentCaptor .forClass (ClientStreamListener .class );
281281
282282 private void createChannel (ClientInterceptor ... interceptors ) {
283+ createChannel (false , interceptors );
284+ }
285+
286+ private void createChannel (boolean nameResolutionExpectedToFail ,
287+ ClientInterceptor ... interceptors ) {
283288 checkState (channel == null );
284289
285290 channel = new ManagedChannelImpl (
@@ -288,7 +293,7 @@ channelBuilder, mockTransportFactory, new FakeBackoffPolicyProvider(),
288293 timer .getTimeProvider ());
289294
290295 if (requestConnection ) {
291- int numExpectedTasks = 0 ;
296+ int numExpectedTasks = nameResolutionExpectedToFail ? 1 : 0 ;
292297
293298 // Force-exit the initial idle-mode
294299 channel .syncContext .execute (new Runnable () {
@@ -3000,7 +3005,7 @@ public void channelTracing_nameResolvingErrorEvent() throws Exception {
30003005 FakeNameResolverFactory nameResolverFactory =
30013006 new FakeNameResolverFactory .Builder (expectedUri ).setError (error ).build ();
30023007 channelBuilder .nameResolverFactory (nameResolverFactory );
3003- createChannel ();
3008+ createChannel (true );
30043009
30053010 assertThat (getStats (channel ).channelTrace .events ).contains (new ChannelTrace .Event .Builder ()
30063011 .setDescription ("Failed to resolve name: " + error )
@@ -3503,10 +3508,11 @@ public double nextDouble() {
35033508 ArgumentCaptor <Helper > helperCaptor = ArgumentCaptor .forClass (Helper .class );
35043509 verify (mockLoadBalancerProvider ).newLoadBalancer (helperCaptor .capture ());
35053510 helper = helperCaptor .getValue ();
3506- verify (mockLoadBalancer ).acceptResolvedAddresses (
3507- ResolvedAddresses .newBuilder ()
3508- .setAddresses (nameResolverFactory .servers )
3509- .build ());
3511+ verify (mockLoadBalancer ).acceptResolvedAddresses (resolvedAddressCaptor .capture ());
3512+ ResolvedAddresses resolvedAddresses = resolvedAddressCaptor .getValue ();
3513+ assertThat (resolvedAddresses .getAddresses ()).isEqualTo (nameResolverFactory .servers );
3514+ assertThat (resolvedAddresses .getAttributes ()
3515+ .get (RetryingNameResolver .RESOLUTION_RESULT_LISTENER_KEY )).isNotNull ();
35103516
35113517 // simulating request connection and then transport ready after resolved address
35123518 Subchannel subchannel =
@@ -3609,10 +3615,11 @@ public void hedgingScheduledThenChannelShutdown_hedgeShouldStillHappen_newCallSh
36093615 ArgumentCaptor <Helper > helperCaptor = ArgumentCaptor .forClass (Helper .class );
36103616 verify (mockLoadBalancerProvider ).newLoadBalancer (helperCaptor .capture ());
36113617 helper = helperCaptor .getValue ();
3612- verify (mockLoadBalancer ).acceptResolvedAddresses (
3613- ResolvedAddresses .newBuilder ()
3614- .setAddresses (nameResolverFactory .servers )
3615- .build ());
3618+ verify (mockLoadBalancer ).acceptResolvedAddresses (resolvedAddressCaptor .capture ());
3619+ ResolvedAddresses resolvedAddresses = resolvedAddressCaptor .getValue ();
3620+ assertThat (resolvedAddresses .getAddresses ()).isEqualTo (nameResolverFactory .servers );
3621+ assertThat (resolvedAddresses .getAttributes ()
3622+ .get (RetryingNameResolver .RESOLUTION_RESULT_LISTENER_KEY )).isNotNull ();
36163623
36173624 // simulating request connection and then transport ready after resolved address
36183625 Subchannel subchannel =
0 commit comments