Home / Class/ DefaultHttp2FrameWriterTest Class — netty Architecture

DefaultHttp2FrameWriterTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2["DefaultHttp2FrameWriterTest"]
  0f927659_2981_66dd_0fe9_514b829259f6["DefaultHttp2FrameWriterTest.java"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|defined in| 0f927659_2981_66dd_0fe9_514b829259f6
  76b4a063_0511_6b28_64f4_fc4191b72dfa["setUp()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 76b4a063_0511_6b28_64f4_fc4191b72dfa
  9a1f7555_cadf_8726_575d_603ae457278f["tearDown()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 9a1f7555_cadf_8726_575d_603ae457278f
  18257f7e_6b98_6a1c_3968_7d340060c175["writeHeaders()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 18257f7e_6b98_6a1c_3968_7d340060c175
  4c9ad236_c04a_4e5d_a035_be7fce79c626["writeHeadersWithPadding()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 4c9ad236_c04a_4e5d_a035_be7fce79c626
  319920a7_54d9_3df9_dd1a_433547e9ddc8["writeHeadersNotEndStream()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 319920a7_54d9_3df9_dd1a_433547e9ddc8
  b3b99abf_02d6_3dad_d7f4_65b4ff432db8["writeEmptyDataWithPadding()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| b3b99abf_02d6_3dad_d7f4_65b4ff432db8
  a01b360b_47db_8abd_b42e_e7cf09ddc891["writeLargeHeaders()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| a01b360b_47db_8abd_b42e_e7cf09ddc891
  38957c71_a60b_15d3_1d18_b92c73bc185f["writeLargeHeaderWithPadding()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 38957c71_a60b_15d3_1d18_b92c73bc185f
  e84a2955_0029_3e1a_568e_cfe327e62dc4["writeFrameZeroPayload()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| e84a2955_0029_3e1a_568e_cfe327e62dc4
  9f64f681_d8f9_4c6a_a883_3fbae083f914["writeFrameHasPayload()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 9f64f681_d8f9_4c6a_a883_3fbae083f914
  fcf23c6d_9ab0_2108_3620_13943a928423["writePriority()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| fcf23c6d_9ab0_2108_3620_13943a928423
  6ac7593e_0df6_30e2_aba0_af897e3b0444["writePriorityDefaults()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| 6ac7593e_0df6_30e2_aba0_af897e3b0444
  a6ef6861_01af_480a_ff2a_92aba33e00e0["headerPayload()"]
  602c48d7_d78b_d8f3_745e_26d2ab6ce0f2 -->|method| a6ef6861_01af_480a_ff2a_92aba33e00e0

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriterTest.java lines 46–409

public class DefaultHttp2FrameWriterTest {
    private DefaultHttp2FrameWriter frameWriter;

    private ByteBuf outbound;

    private ByteBuf expectedOutbound;

    private ChannelPromise promise;

    private Http2HeadersEncoder http2HeadersEncoder;

    @Mock
    private Channel channel;

    @Mock
    private ChannelFuture future;

    @Mock
    private ChannelHandlerContext ctx;

    @BeforeEach
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        http2HeadersEncoder = new DefaultHttp2HeadersEncoder(
                Http2HeadersEncoder.NEVER_SENSITIVE, new HpackEncoder(false, 16, 0));

        frameWriter = new DefaultHttp2FrameWriter(new DefaultHttp2HeadersEncoder(
                Http2HeadersEncoder.NEVER_SENSITIVE, new HpackEncoder(false, 16, 0)));

        outbound = Unpooled.buffer();

        expectedOutbound = Unpooled.EMPTY_BUFFER;

        promise = new DefaultChannelPromise(channel, ImmediateEventExecutor.INSTANCE);

        Answer<Object> answer = new Answer<Object>() {
            @Override
            public Object answer(InvocationOnMock var1) throws Throwable {
                Object msg = var1.getArgument(0);
                if (msg instanceof ByteBuf) {
                    outbound.writeBytes((ByteBuf) msg);
                }
                ReferenceCountUtil.release(msg);
                return future;
            }
        };
        when(ctx.write(any())).then(answer);
        when(ctx.write(any(), any(ChannelPromise.class))).then(answer);
        when(ctx.alloc()).thenReturn(UnpooledByteBufAllocator.DEFAULT);
        when(ctx.channel()).thenReturn(channel);
        when(ctx.executor()).thenReturn(ImmediateEventExecutor.INSTANCE);
    }

    @AfterEach
    public void tearDown() throws Exception {
        outbound.release();
        expectedOutbound.release();
        frameWriter.close();
    }

    @Test
    public void writeHeaders() throws Exception {
        int streamId = 1;
        Http2Headers headers = new DefaultHttp2Headers()
                .method("GET").path("/").authority("foo.com").scheme("https");

        frameWriter.writeHeaders(ctx, streamId, headers, 0, true, promise);

        byte[] expectedPayload = headerPayload(streamId, headers);
        byte[] expectedFrameBytes = {
                (byte) 0x00, (byte) 0x00, (byte) 0x0a, // payload length = 10
                (byte) 0x01, // payload type = 1
                (byte) 0x05, // flags = (0x01 | 0x04)
                (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01 // stream id = 1
        };
        expectedOutbound = Unpooled.copiedBuffer(expectedFrameBytes, expectedPayload);
        assertEquals(expectedOutbound, outbound);
    }

    @Test
    public void writeHeadersWithPadding() throws Exception {

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free