1818
1919import static com .google .common .truth .Truth .assertThat ;
2020import static io .grpc .ConnectivityState .CONNECTING ;
21+ import static io .grpc .ConnectivityState .IDLE ;
2122import static io .grpc .ConnectivityState .READY ;
2223import static io .grpc .ConnectivityState .TRANSIENT_FAILURE ;
2324import static io .grpc .util .GracefulSwitchLoadBalancer .BUFFER_PICKER ;
3233import static org .mockito .Mockito .when ;
3334
3435import com .google .common .testing .EqualsTester ;
36+ import io .grpc .ConnectivityState ;
3537import io .grpc .ConnectivityStateInfo ;
3638import io .grpc .EquivalentAddressGroup ;
3739import io .grpc .LoadBalancer ;
@@ -363,7 +365,21 @@ public void createSubchannelForwarded() {
363365 }
364366
365367 @ Test
366- public void updateBalancingStateIsGraceful () {
368+ public void updateBalancingStateIsGraceful_Ready () {
369+ updateBalancingStateIsGraceful (READY );
370+ }
371+
372+ @ Test
373+ public void updateBalancingStateIsGraceful_TransientFailure () {
374+ updateBalancingStateIsGraceful (TRANSIENT_FAILURE );
375+ }
376+
377+ @ Test
378+ public void updateBalancingStateIsGraceful_Idle () {
379+ updateBalancingStateIsGraceful (IDLE );
380+ }
381+
382+ public void updateBalancingStateIsGraceful (ConnectivityState swapsOnState ) {
367383 assertIsOk (gracefulSwitchLb .acceptResolvedAddresses (addressesBuilder ()
368384 .setLoadBalancingPolicyConfig (createConfig (lbPolicies [0 ], new Object ()))
369385 .build ()));
@@ -392,11 +408,11 @@ public void updateBalancingStateIsGraceful() {
392408 helper2 .updateBalancingState (CONNECTING , picker );
393409 verify (mockHelper , never ()).updateBalancingState (CONNECTING , picker );
394410
395- // lb2 reports READY
411+ // lb2 reports swapsOnState
396412 SubchannelPicker picker2 = mock (SubchannelPicker .class );
397- helper2 .updateBalancingState (READY , picker2 );
413+ helper2 .updateBalancingState (swapsOnState , picker2 );
398414 verify (lb0 ).shutdown ();
399- verify (mockHelper ).updateBalancingState (READY , picker2 );
415+ verify (mockHelper ).updateBalancingState (swapsOnState , picker2 );
400416
401417 assertIsOk (gracefulSwitchLb .acceptResolvedAddresses (addressesBuilder ()
402418 .setLoadBalancingPolicyConfig (createConfig (lbPolicies [3 ], new Object ()))
@@ -407,7 +423,7 @@ public void updateBalancingStateIsGraceful() {
407423 helper3 .updateBalancingState (CONNECTING , picker3 );
408424 verify (mockHelper , never ()).updateBalancingState (CONNECTING , picker3 );
409425
410- // lb2 out of READY
426+ // lb2 out of swapsOnState
411427 picker2 = mock (SubchannelPicker .class );
412428 helper2 .updateBalancingState (CONNECTING , picker2 );
413429 verify (mockHelper , never ()).updateBalancingState (CONNECTING , picker2 );
0 commit comments