### Question:
HttpClientEventPublisher extends HttpClientEventsListener implements EventSource<HttpClientEventsListener>, EventPublisher { @Override public void onPooledConnectionEviction() { tcpDelegate.onPooledConnectionEviction(); } HttpClientEventPublisher(); private  HttpClientEventPublisher(ListenersHolder<HttpClientEventsListener> l, TcpClientEventPublisher tcpDelegate); @Override void onRequestSubmitted(); @Override void onRequestWriteStart(); @Override void onRequestWriteComplete(final long duration, final TimeUnit timeUnit); @Override void onRequestWriteFailed(final long duration, final TimeUnit timeUnit, final Throwable throwable); @Override void onResponseHeadersReceived(final int responseCode, long duration, TimeUnit timeUnit); @Override void onResponseContentReceived(); @Override void onResponseReceiveComplete(final long duration, final TimeUnit timeUnit); @Override void onResponseFailed(final Throwable throwable); @Override void onRequestProcessingComplete(final long duration, final TimeUnit timeUnit); @Override void onConnectionCloseFailed(long duration, TimeUnit timeUnit,
                                        Throwable throwable); @Override void onConnectStart(); @Override void onConnectSuccess(long duration, TimeUnit timeUnit); @Override void onConnectFailed(long duration, TimeUnit timeUnit,
                                Throwable throwable); @Override void onPoolReleaseStart(); @Override void onPoolReleaseSuccess(long duration, TimeUnit timeUnit); @Override void onPoolReleaseFailed(long duration, TimeUnit timeUnit,
                                    Throwable throwable); @Override void onPooledConnectionEviction(); @Override void onPooledConnectionReuse(); @Override void onPoolAcquireStart(); @Override void onPoolAcquireSuccess(long duration, TimeUnit timeUnit); @Override void onPoolAcquireFailed(long duration, TimeUnit timeUnit,
                                    Throwable throwable); @Override void onByteRead(long bytesRead); @Override void onByteWritten(long bytesWritten); @Override void onFlushStart(); @Override void onFlushComplete(long duration, TimeUnit timeUnit); @Override void onWriteStart(); @Override void onWriteSuccess(long duration, TimeUnit timeUnit); @Override void onWriteFailed(long duration, TimeUnit timeUnit, Throwable throwable); @Override void onConnectionCloseStart(); @Override void onConnectionCloseSuccess(long duration, TimeUnit timeUnit); @Override void onCustomEvent(Object event); @Override void onCustomEvent(Object event, long duration, TimeUnit timeUnit); @Override void onCustomEvent(Object event, long duration, TimeUnit timeUnit, Throwable throwable); @Override void onCustomEvent(Object event, Throwable throwable); @Override boolean publishingEnabled(); @Override Subscription subscribe(HttpClientEventsListener listener); EventSource<TcpClientEventListener> asTcpEventSource(); HttpClientEventPublisher copy();  }### Answer:
@Test(timeout = 60000) public void testOnPooledConnectionEviction() throws Exception { rule.publisher.onPooledConnectionEviction(); rule.listener.getTcpDelegate().assertMethodsCalled(ClientEvent.Eviction); }