Esempio n. 1
0
  @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);
  }