### Question:
Http2MultiplexCodec extends Http2FrameCodec { @Override final void onHttp2StreamWritabilityChanged(ChannelHandlerContext ctx, Http2FrameStream stream, boolean writable) { (((Http2MultiplexCodecStream) stream).channel).writabilityChanged(writable); } Http2MultiplexCodec(Http2ConnectionEncoder encoder,
                        Http2ConnectionDecoder decoder,
                        Http2Settings initialSettings,
                        ChannelHandler inboundStreamHandler); @Override final void handlerAdded0(ChannelHandlerContext ctx); @Override final void handlerRemoved0(ChannelHandlerContext ctx); @Override final void channelReadComplete(ChannelHandlerContext ctx); @Override final void channelRead(ChannelHandlerContext ctx, Object msg);  }### Answer:
@Test public void writabilityAndFlowControl() { LastInboundHandler inboundHandler = streamActiveAndWriteHeaders(inboundStream); Http2StreamChannel childChannel = (Http2StreamChannel) inboundHandler.channel(); assertEquals("", inboundHandler.writabilityStates()); childChannel.writeAndFlush(new DefaultHttp2HeadersFrame(new DefaultHttp2Headers())); codec.onHttp2StreamWritabilityChanged(childChannel.stream(), true); assertEquals("true", inboundHandler.writabilityStates()); codec.onHttp2StreamWritabilityChanged(childChannel.stream(), true); assertEquals("true", inboundHandler.writabilityStates()); codec.onHttp2StreamWritabilityChanged(childChannel.stream(), false); assertEquals("true,false", inboundHandler.writabilityStates()); codec.onHttp2StreamWritabilityChanged(childChannel.stream(), false); assertEquals("true,false", inboundHandler.writabilityStates()); }