@Test(timeout = 100000)
public void testRemoveAndForwardInbound() throws Exception {

    final BufferedTestHandler handler1 = new BufferedTestHandler();
    final BufferedTestHandler handler2 = new BufferedTestHandler();
    setUp(handler1, handler2);
    self.eventLoop().submit(new Runnable() {
        @Override
        public void run() {
            ChannelPipeline p = self.pipeline();
            handler1.inboundBuffer.add(8);
            assertEquals(8, handler1.inboundBuffer.peek());
            assertTrue(handler2.inboundBuffer.isEmpty());
            p.remove(handler1);
            assertEquals(1, handler2.inboundBuffer.size());
            assertEquals(8, handler2.inboundBuffer.peek());
        }
    }).sync();
}