Home / Class/ Http2ControlFrameLimitEncoderTest Class — netty Architecture

Http2ControlFrameLimitEncoderTest Class — netty Architecture

Architecture documentation for the Http2ControlFrameLimitEncoderTest class in Http2ControlFrameLimitEncoderTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  22de4aca_61e4_e560_8713_527c2b02db9e["Http2ControlFrameLimitEncoderTest"]
  f0d67719_6fef_fcba_0f46_45f3e3444943["Http2ControlFrameLimitEncoderTest.java"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|defined in| f0d67719_6fef_fcba_0f46_45f3e3444943
  521cd212_dcb6_6d04_0928_aa6261ecf339["setup()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 521cd212_dcb6_6d04_0928_aa6261ecf339
  cf0830ae_999d_4981_82b0_88c23a5b5a6f["ChannelPromise()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| cf0830ae_999d_4981_82b0_88c23a5b5a6f
  20b03307_2c6f_9d41_f628_db7041e9dc4b["teardown()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 20b03307_2c6f_9d41_f628_db7041e9dc4b
  76a455e6_3b19_5966_48a5_4a444ae57985["testLimitSettingsAck()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 76a455e6_3b19_5966_48a5_4a444ae57985
  29d45100_5b1a_cee1_549c_23920757a2cd["testLimitPingAck()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 29d45100_5b1a_cee1_549c_23920757a2cd
  9ef3c52a_6831_b7ca_1cc3_f584c46c63c0["testNotLimitPing()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 9ef3c52a_6831_b7ca_1cc3_f584c46c63c0
  f2df9dad_100f_14d5_5b18_93d145ddfcd8["testLimitRst()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| f2df9dad_100f_14d5_5b18_93d145ddfcd8
  9daa03dc_439c_7de5_b18b_29e66494cabe["testLimit()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 9daa03dc_439c_7de5_b18b_29e66494cabe
  47fd1fb2_be80_9cc4_d23f_053ecbef3394["verifyFlushAndClose()"]
  22de4aca_61e4_e560_8713_527c2b02db9e -->|method| 47fd1fb2_be80_9cc4_d23f_053ecbef3394

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/Http2ControlFrameLimitEncoderTest.java lines 53–277

public class Http2ControlFrameLimitEncoderTest {

    private Http2ControlFrameLimitEncoder encoder;

    @Mock
    private Http2FrameWriter writer;

    @Mock
    private ChannelHandlerContext ctx;

    @Mock
    private Channel channel;

    @Mock
    private Channel.Unsafe unsafe;

    @Mock
    private ChannelConfig config;

    @Mock
    private EventExecutor executor;

    private int numWrites;

    private final Queue<ChannelPromise> goAwayPromises = new ArrayDeque<ChannelPromise>();

    /**
     * Init fields and do mocking.
     */
    @BeforeEach
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);

        numWrites = 0;

        Http2FrameWriter.Configuration configuration = mock(Http2FrameWriter.Configuration.class);
        Http2FrameSizePolicy frameSizePolicy = mock(Http2FrameSizePolicy.class);
        when(writer.configuration()).thenReturn(configuration);
        when(configuration.frameSizePolicy()).thenReturn(frameSizePolicy);
        when(frameSizePolicy.maxFrameSize()).thenReturn(DEFAULT_MAX_FRAME_SIZE);

        when(writer.writeRstStream(eq(ctx), anyInt(), anyLong(), any(ChannelPromise.class)))
                .thenAnswer(new Answer<ChannelFuture>() {
                    @Override
                    public ChannelFuture answer(InvocationOnMock invocationOnMock) {
                        return handlePromise(invocationOnMock, 3);
                    }
                });
        when(writer.writeSettingsAck(any(ChannelHandlerContext.class), any(ChannelPromise.class)))
                .thenAnswer(new Answer<ChannelFuture>() {
                    @Override
                    public ChannelFuture answer(InvocationOnMock invocationOnMock) {
                        return handlePromise(invocationOnMock, 1);
                    }
        });
        when(writer.writePing(any(ChannelHandlerContext.class), anyBoolean(), anyLong(), any(ChannelPromise.class)))
                .thenAnswer(new Answer<ChannelFuture>() {
                    @Override
                    public ChannelFuture answer(InvocationOnMock invocationOnMock) {
                        ChannelPromise promise = handlePromise(invocationOnMock, 3);
                        if (invocationOnMock.getArgument(1) == Boolean.FALSE) {
                            promise.trySuccess();
                        }
                        return promise;
                    }
                });
        when(writer.writeGoAway(any(ChannelHandlerContext.class), anyInt(), anyLong(), any(ByteBuf.class),
                any(ChannelPromise.class))).thenAnswer(new Answer<ChannelFuture>() {
            @Override
            public ChannelFuture answer(InvocationOnMock invocationOnMock) {
                ReferenceCountUtil.release(invocationOnMock.getArgument(3));
                ChannelPromise promise = invocationOnMock.getArgument(4);
                goAwayPromises.offer(promise);
                return promise;
            }
        });
        Http2Connection connection = new DefaultHttp2Connection(false);
        connection.remote().flowController(new DefaultHttp2RemoteFlowController(connection));
        connection.local().flowController(new DefaultHttp2LocalFlowController(connection).frameWriter(writer));

        DefaultHttp2ConnectionEncoder defaultEncoder =

Frequently Asked Questions

What is the Http2ControlFrameLimitEncoderTest class?
Http2ControlFrameLimitEncoderTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2ControlFrameLimitEncoderTest.java.
Where is Http2ControlFrameLimitEncoderTest defined?
Http2ControlFrameLimitEncoderTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2ControlFrameLimitEncoderTest.java at line 53.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free