util: Replace RR.EmptyPicker with FixedResultPicker · grpc/grpc-java@f20167d
@@ -46,15 +46,16 @@
4646import io.grpc.EquivalentAddressGroup;
4747import io.grpc.LoadBalancer;
4848import io.grpc.LoadBalancer.CreateSubchannelArgs;
49+import io.grpc.LoadBalancer.FixedResultPicker;
4950import io.grpc.LoadBalancer.Helper;
51+import io.grpc.LoadBalancer.PickResult;
5052import io.grpc.LoadBalancer.PickSubchannelArgs;
5153import io.grpc.LoadBalancer.ResolvedAddresses;
5254import io.grpc.LoadBalancer.Subchannel;
5355import io.grpc.LoadBalancer.SubchannelPicker;
5456import io.grpc.Status;
5557import io.grpc.internal.TestUtils;
5658import io.grpc.util.MultiChildLoadBalancer.ChildLbState;
57-import io.grpc.util.RoundRobinLoadBalancer.EmptyPicker;
5859import io.grpc.util.RoundRobinLoadBalancer.ReadyPicker;
5960import java.net.SocketAddress;
6061import java.util.ArrayList;
8485@RunWith(JUnit4.class)
8586public class RoundRobinLoadBalancerTest {
8687private static final Attributes.Key<String> MAJOR_KEY = Attributes.Key.create("major-key");
88+private static final SubchannelPicker EMPTY_PICKER =
89+new FixedResultPicker(PickResult.withNoResult());
87908891@Rule public final MockitoRule mocks = MockitoJUnit.rule();
8992@@ -248,7 +251,7 @@ public void pickAfterStateChange() throws Exception {
248251ChildLbState childLbState = loadBalancer.getChildLbStates().iterator().next();
249252Subchannel subchannel = subchannels.get(Arrays.asList(childLbState.getEag()));
250253251-inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), isA(EmptyPicker.class));
254+inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), eq(EMPTY_PICKER));
252255assertThat(childLbState.getCurrentState()).isEqualTo(CONNECTING);
253256254257deliverSubchannelState(subchannel, ConnectivityStateInfo.forNonError(READY));
@@ -261,7 +264,7 @@ public void pickAfterStateChange() throws Exception {
261264ConnectivityStateInfo.forTransientFailure(error));
262265assertThat(childLbState.getCurrentState()).isEqualTo(TRANSIENT_FAILURE);
263266AbstractTestHelper.refreshInvokedAndUpdateBS(inOrder, CONNECTING, mockHelper, pickerCaptor);
264-assertThat(pickerCaptor.getValue()).isInstanceOf(EmptyPicker.class);
267+assertThat(pickerCaptor.getValue()).isEqualTo(EMPTY_PICKER);
265268266269deliverSubchannelState(subchannel, ConnectivityStateInfo.forNonError(IDLE));
267270inOrder.verify(mockHelper).refreshNameResolution();
@@ -277,7 +280,7 @@ public void ignoreShutdownSubchannelStateChange() {
277280InOrder inOrder = inOrder(mockHelper);
278281Status addressesAcceptanceStatus = acceptAddresses(servers, Attributes.EMPTY);
279282assertThat(addressesAcceptanceStatus.isOk()).isTrue();
280-inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), isA(EmptyPicker.class));
283+inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), eq(EMPTY_PICKER));
281284282285loadBalancer.shutdown();
283286for (ChildLbState child : loadBalancer.getChildLbStates()) {
@@ -297,7 +300,7 @@ public void stayTransientFailureUntilReady() {
297300Status addressesAcceptanceStatus = acceptAddresses(servers, Attributes.EMPTY);
298301assertThat(addressesAcceptanceStatus.isOk()).isTrue();
299302300-inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), isA(EmptyPicker.class));
303+inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), eq(EMPTY_PICKER));
301304302305Map<ChildLbState, Subchannel> childToSubChannelMap = new HashMap<>();
303306// Simulate state transitions for each subchannel individually.
@@ -336,7 +339,7 @@ public void refreshNameResolutionWhenSubchannelConnectionBroken() {
336339assertThat(addressesAcceptanceStatus.isOk()).isTrue();
337340338341verify(mockHelper, times(3)).createSubchannel(any(CreateSubchannelArgs.class));
339-inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), isA(EmptyPicker.class));
342+inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), eq(EMPTY_PICKER));
340343341344// Simulate state transitions for each subchannel individually.
342345for (ChildLbState child : loadBalancer.getChildLbStates()) {
@@ -352,7 +355,7 @@ public void refreshNameResolutionWhenSubchannelConnectionBroken() {
352355deliverSubchannelState(sc, ConnectivityStateInfo.forNonError(IDLE));
353356inOrder.verify(mockHelper).refreshNameResolution();
354357verify(sc, times(2)).requestConnection();
355-inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), isA(EmptyPicker.class));
358+inOrder.verify(mockHelper).updateBalancingState(eq(CONNECTING), eq(EMPTY_PICKER));
356359 }
357360358361AbstractTestHelper.verifyNoMoreMeaningfulInteractions(mockHelper);
@@ -461,7 +464,7 @@ public void subchannelStateIsolation() throws Exception {
461464Iterator<SubchannelPicker> pickers = pickerCaptor.getAllValues().iterator();
462465// The picker is incrementally updated as subchannels become READY
463466assertEquals(CONNECTING, stateIterator.next());
464-assertThat(pickers.next()).isInstanceOf(EmptyPicker.class);
467+assertThat(pickers.next()).isEqualTo(EMPTY_PICKER);
465468assertEquals(READY, stateIterator.next());
466469assertThat(getList(pickers.next())).containsExactly(sc1);
467470assertEquals(READY, stateIterator.next());
@@ -492,8 +495,8 @@ public void readyPicker_emptyList() {
492495493496@Test
494497public void internalPickerComparisons() {
495-SubchannelPicker empty1 = new EmptyPicker();
496-SubchannelPicker empty2 = new EmptyPicker();
498+SubchannelPicker empty1 = new FixedResultPicker(PickResult.withNoResult());
499+SubchannelPicker empty2 = new FixedResultPicker(PickResult.withNoResult());
497500498501AtomicInteger seq = new AtomicInteger(0);
499502acceptAddresses(servers, Attributes.EMPTY); // create subchannels