@Test public void testForwardsOnlySubsetRequests() { Capture<Set<String>> backendCapture = createCapture(); wrappedStrategy.offerBackends(capture(backendCapture), eq(onBackendsChosen)); control.replay(); Set<String> allBackends = Sets.newHashSet(BACKEND_1, BACKEND_2, BACKEND_3); subsetStrategy.offerBackends(allBackends, onBackendsChosen); Set<String> backends = backendCapture.getValue(); assertThat(backends.size(), is(2)); // One backend should have been unused, makes sure the appropriate calls are ignored for it. String unusedBackend = Iterables.getOnlyElement(Sets.difference(allBackends, backends)); subsetStrategy.addRequestResult(unusedBackend, RequestResult.SUCCESS, 0L); subsetStrategy.addConnectResult(unusedBackend, ConnectionResult.FAILED, 0L); subsetStrategy.connectionReturned(unusedBackend); }
private void connect(String backend, int count) { for (int i = 0; i < count; i++) { leastCon.addConnectResult(backend, ConnectionResult.SUCCESS, 0L); } }