CompleteChannelFuture extends CompleteFuture<Void> implements ChannelFuture { @Override public ChannelFuture removeListener(GenericFutureListener<? extends Future<? super Void>> listener) { super.removeListener(listener); return this; } protected  CompleteChannelFuture(Channel channel, EventExecutor executor); @Override ChannelFuture addListener(GenericFutureListener<? extends Future<? super Void>> listener); @Override ChannelFuture addListeners(GenericFutureListener<? extends Future<? super Void>>... listeners); @Override ChannelFuture removeListener(GenericFutureListener<? extends Future<? super Void>> listener); @Override ChannelFuture removeListeners(GenericFutureListener<? extends Future<? super Void>>... listeners); @Override ChannelFuture syncUninterruptibly(); @Override ChannelFuture sync(); @Override ChannelFuture await(); @Override ChannelFuture awaitUninterruptibly(); @Override Channel channel(); @Override Void getNow(); @Override boolean isVoid();  }
@Test public void shouldNotDoAnythingOnRemove() throws Exception { ChannelFutureListener l = createStrictMock(ChannelFutureListener.class); replay(l); future.removeListener(l); verify(l); }