File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
core/src/test/java/io/grpc/internal Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -402,11 +402,23 @@ public void pickAfterResolvedAndChanged() {
402402 Lists .newArrayList (new EquivalentAddressGroup (socketAddr2 ));
403403
404404 // accept resolved addresses which starts connection attempt to first address
405+ InOrder inOrder = inOrder (mockHelper , mockSubchannel1 );
405406 loadBalancer .acceptResolvedAddresses (
406407 ResolvedAddresses .newBuilder ().setAddresses (oldServers ).setAttributes (affinity ).build ());
407408 verify (mockHelper ).updateBalancingState (eq (CONNECTING ), pickerCaptor .capture ());
409+ verify (mockHelper ).createSubchannel (createArgsCaptor .capture ());
410+ inOrder .verify (mockSubchannel1 ).start (stateListenerCaptor .capture ());
411+ SubchannelStateListener stateListener = stateListenerCaptor .getValue ();
408412 assertNull (pickerCaptor .getValue ().pickSubchannel (mockArgs ).getSubchannel ());
413+ stateListener .onSubchannelState (ConnectivityStateInfo .forNonError (READY ));
414+
415+ // Connection breaks
416+ stateListener .onSubchannelState (ConnectivityStateInfo .forNonError (IDLE ));
417+ inOrder .verify (mockHelper ).refreshNameResolution ();
418+ inOrder .verify (mockHelper ).updateBalancingState (eq (IDLE ), pickerCaptor .capture ());
419+ assertEquals (Status .OK , pickerCaptor .getValue ().pickSubchannel (mockArgs ).getStatus ());
409420
421+ // Re-resolution result from NR
410422 // updating the subchannel addresses is unnecessary, but doesn't hurt anything
411423 loadBalancer .acceptResolvedAddresses (
412424 ResolvedAddresses .newBuilder ().setAddresses (newServers ).setAttributes (affinity ).build ());
You can’t perform that action at this time.
0 commit comments