BalancingHttpClient implements HttpClient { @Flatten @Override public RequestStats getStats() { return httpClient.getStats(); } @Inject  BalancingHttpClient(@ForBalancingHttpClient HttpServiceBalancer pool,
            @ForBalancingHttpClient HttpClient httpClient,
            BalancingHttpClientConfig config,
            @ForBalancingHttpClient ScheduledExecutorService retryExecutor); @VisibleForTesting  BalancingHttpClient(@ForBalancingHttpClient HttpServiceBalancer pool,
            @ForBalancingHttpClient HttpClient httpClient,
            BalancingHttpClientConfig config,
            @ForBalancingHttpClient ScheduledExecutorService retryExecutor,
            Ticker ticker); @Override T execute(Request request, ResponseHandler<T, E> responseHandler); @Override HttpResponseFuture<T> executeAsync(Request request, ResponseHandler<T, E> responseHandler); @Flatten @Override RequestStats getStats(); @Managed String dump(); @Managed void dumpStdErr(); @Override void close(); @Override boolean isClosed();  }
@Test public void testGetStats() { RequestStats requestStats = new RequestStats(); HttpClient mockClient = mock(HttpClient.class); ScheduledExecutorService retryExecutor = mock(ScheduledExecutorService.class); when(mockClient.getStats()).thenReturn(requestStats); balancingHttpClient = new BalancingHttpClient(serviceBalancer, mockClient, new BalancingHttpClientConfig(), retryExecutor); assertSame(balancingHttpClient.getStats(), requestStats); verify(mockClient).getStats(); verifyNoMoreInteractions(mockClient, serviceBalancer); }