@Test public void mustSpecifyAtLeastOneUrl() { assertThatThrownBy(() -> UrlSelectorImpl.create(set(), false)) .isInstanceOf(IllegalArgumentException.class) .hasMessage("Must specify at least one URL"); }
@VisibleForTesting static UrlSelectorImpl create(Collection<String> baseUrls, boolean reshuffle) { return createWithFailedUrlCooldown(baseUrls, reshuffle, Duration.ZERO, Clock.systemUTC()); }
UrlSelectorImpl implements UrlSelector { @VisibleForTesting static UrlSelectorImpl create(Collection<String> baseUrls, boolean reshuffle) { return createWithFailedUrlCooldown(baseUrls, reshuffle, Duration.ZERO, Clock.systemUTC()); } }
UrlSelectorImpl implements UrlSelector { @VisibleForTesting static UrlSelectorImpl create(Collection<String> baseUrls, boolean reshuffle) { return createWithFailedUrlCooldown(baseUrls, reshuffle, Duration.ZERO, Clock.systemUTC()); } private  UrlSelectorImpl(
            ImmutableList<HttpUrl> baseUrls, boolean reshuffle, Duration failedUrlCooldown, Clock clock); }
UrlSelectorImpl implements UrlSelector { @VisibleForTesting static UrlSelectorImpl create(Collection<String> baseUrls, boolean reshuffle) { return createWithFailedUrlCooldown(baseUrls, reshuffle, Duration.ZERO, Clock.systemUTC()); } private  UrlSelectorImpl(
            ImmutableList<HttpUrl> baseUrls, boolean reshuffle, Duration failedUrlCooldown, Clock clock); @Override Optional<HttpUrl> redirectTo(HttpUrl requestUrl, String redirectUrl); @Override Optional<HttpUrl> redirectToNext(HttpUrl requestUrl); @Override Optional<HttpUrl> redirectToCurrent(HttpUrl requestUrl); @Override Optional<HttpUrl> redirectToNextRoundRobin(HttpUrl requestUrl); @Override void markAsSucceeded(HttpUrl succeededUrl); @Override void markAsFailed(HttpUrl failedUrl); @Override List<HttpUrl> getBaseUrls(); }
UrlSelectorImpl implements UrlSelector { @VisibleForTesting static UrlSelectorImpl create(Collection<String> baseUrls, boolean reshuffle) { return createWithFailedUrlCooldown(baseUrls, reshuffle, Duration.ZERO, Clock.systemUTC()); } private  UrlSelectorImpl(
            ImmutableList<HttpUrl> baseUrls, boolean reshuffle, Duration failedUrlCooldown, Clock clock); @Override Optional<HttpUrl> redirectTo(HttpUrl requestUrl, String redirectUrl); @Override Optional<HttpUrl> redirectToNext(HttpUrl requestUrl); @Override Optional<HttpUrl> redirectToCurrent(HttpUrl requestUrl); @Override Optional<HttpUrl> redirectToNextRoundRobin(HttpUrl requestUrl); @Override void markAsSucceeded(HttpUrl succeededUrl); @Override void markAsFailed(HttpUrl failedUrl); @Override List<HttpUrl> getBaseUrls();  }