@Test
public void verifyChannelHandlerCanBeReusedInPipeline() throws Exception {

    when(connection.isServer()).thenReturn(true);
    handler = newHandler();
    // Only read the connection preface...after preface is read internal state of Http2ConnectionHandler
    // is expected to change relative to the pipeline.
    ByteBuf preface = connectionPrefaceBuf();
    handler.channelRead(ctx, preface);
    verify(decoder, never()).decodeFrame(any(ChannelHandlerContext.class),
            any(ByteBuf.class), ArgumentMatchers.<List<Object>>any());
    // Now remove and add the handler...this is setting up the test condition.
    handler.handlerRemoved(ctx);
    handler.handlerAdded(ctx);
    // Now verify we can continue as normal, reading connection preface plus more.
    ByteBuf prefacePlusSome = addSettingsHeader(Unpooled.buffer().writeBytes(connectionPrefaceBuf()));
    handler.channelRead(ctx, prefacePlusSome);
    verify(decoder, atLeastOnce()).decodeFrame(eq(ctx), any(ByteBuf.class), ArgumentMatchers.<List<Object>>any());
}