### Question:
TcpClientEventPublisher extends TcpClientEventListener implements EventSource<TcpClientEventListener>, EventPublisher { @Override public void onByteWritten(long bytesWritten) { connDelegate.onByteWritten(bytesWritten); } TcpClientEventPublisher();  TcpClientEventPublisher(TcpClientEventPublisher toCopy); @Override void onConnectStart(); @Override void onConnectSuccess(final long duration, final TimeUnit timeUnit); @Override void onConnectFailed(final long duration, final TimeUnit timeUnit, final Throwable throwable); @Override void onPoolReleaseStart(); @Override void onPoolReleaseSuccess(final long duration, final TimeUnit timeUnit); @Override void onPoolReleaseFailed(final long duration, final TimeUnit timeUnit, final Throwable throwable); @Override void onPooledConnectionEviction(); @Override void onPooledConnectionReuse(); @Override void onPoolAcquireStart(); @Override void onPoolAcquireSuccess(final long duration, final TimeUnit timeUnit); @Override void onPoolAcquireFailed(final long duration, final TimeUnit timeUnit, final 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 onConnectionCloseFailed(long duration, TimeUnit timeUnit, Throwable throwable); @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 Subscription subscribe(TcpClientEventListener listener); @Override boolean publishingEnabled(); TcpClientEventPublisher copy(); static final Action1<TcpClientEventListener> CONN_START_ACTION; static final Action3<TcpClientEventListener, Long, TimeUnit> CONN_SUCCESS_ACTION; static final Action4<TcpClientEventListener, Long, TimeUnit, Throwable> CONN_FAILED_ACTION; static final Action1<TcpClientEventListener> EVICTION_ACTION; static final Action1<TcpClientEventListener> REUSE_ACTION; static final Action1<TcpClientEventListener> ACQUIRE_START_ACTION; static final Action3<TcpClientEventListener, Long, TimeUnit> ACQUIRE_SUCCESS_ACTION; static final Action4<TcpClientEventListener, Long, TimeUnit, Throwable> ACQUIRE_FAILED_ACTION; static final Action1<TcpClientEventListener> RELEASE_START_ACTION; static final Action3<TcpClientEventListener, Long, TimeUnit> RELEASE_SUCCESS_ACTION; static final Action4<TcpClientEventListener, Long, TimeUnit, Throwable> RELEASE_FAILED_ACTION; }### Answer:
@Test(timeout = 60000) public void testOnByteWritten() throws Exception { rule.publisher.onByteWritten(1); rule.listener.assertMethodsCalled(Event.BytesWritten); }