Home / Class/ SpdyHeaderBlockRawDecoderTest Class — netty Architecture

SpdyHeaderBlockRawDecoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  9d24b120_0e9f_df39_05af_436eac53cd12["SpdyHeaderBlockRawDecoderTest"]
  7e59f862_07fb_7fd4_e6ee_f92d3494c649["SpdyHeaderBlockRawDecoderTest.java"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|defined in| 7e59f862_07fb_7fd4_e6ee_f92d3494c649
  530254a1_ccbf_fe44_426a_0e07f1f65bb0["setUp()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 530254a1_ccbf_fe44_426a_0e07f1f65bb0
  72b6eda2_a7f6_e1ba_1748_1cb0e78c642c["tearDown()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 72b6eda2_a7f6_e1ba_1748_1cb0e78c642c
  58054e2e_a07e_b5f1_8b3d_214accb98525["testEmptyHeaderBlock()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 58054e2e_a07e_b5f1_8b3d_214accb98525
  1110afae_3eee_bf1c_649b_4386eabc6320["testZeroNameValuePairs()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 1110afae_3eee_bf1c_649b_4386eabc6320
  bf4606ac_dcad_8b6f_3eb8_54f93181e6a1["testNegativeNameValuePairs()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| bf4606ac_dcad_8b6f_3eb8_54f93181e6a1
  7699391d_aef6_b833_34a3_affb89de4dc8["testOneNameValuePair()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 7699391d_aef6_b833_34a3_affb89de4dc8
  928174dc_2082_36ee_38f9_afe7f835e546["testMissingNameLength()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 928174dc_2082_36ee_38f9_afe7f835e546
  38759a25_d0b4_0e25_b652_c70ea7a033a3["testZeroNameLength()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 38759a25_d0b4_0e25_b652_c70ea7a033a3
  143a1e19_37c9_a207_e8bc_ebcd87badd3c["testNegativeNameLength()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 143a1e19_37c9_a207_e8bc_ebcd87badd3c
  38aae2e6_017d_a894_350e_01f19a01eaa9["testMissingName()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 38aae2e6_017d_a894_350e_01f19a01eaa9
  a121d134_9c3e_a007_630a_aa642b6bf2a8["testIllegalNameOnlyNull()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| a121d134_9c3e_a007_630a_aa642b6bf2a8
  0216bd80_6b40_f985_8217_e91313be95e3["testMissingValueLength()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| 0216bd80_6b40_f985_8217_e91313be95e3
  b4e29cbf_c6ba_894a_6463_af0e624b0e32["testZeroValueLength()"]
  9d24b120_0e9f_df39_05af_436eac53cd12 -->|method| b4e29cbf_c6ba_894a_6463_af0e624b0e32

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyHeaderBlockRawDecoderTest.java lines 29–516

public class SpdyHeaderBlockRawDecoderTest {

    private static final int maxHeaderSize = 16;

    private static final String name = "name";
    private static final String value = "value";
    private static final byte[] nameBytes = name.getBytes();
    private static final byte[] valueBytes = value.getBytes();

    private SpdyHeaderBlockRawDecoder decoder;
    private SpdyHeadersFrame frame;

    @BeforeEach
    public void setUp() {
        decoder = new SpdyHeaderBlockRawDecoder(SpdyVersion.SPDY_3_1, maxHeaderSize);
        frame = new DefaultSpdyHeadersFrame(1);
    }

    @AfterEach
    public void tearDown() {
        decoder.end();
    }

    @Test
    public void testEmptyHeaderBlock() throws Exception {
        ByteBuf headerBlock = Unpooled.EMPTY_BUFFER;
        decoder.decode(ByteBufAllocator.DEFAULT, headerBlock, frame);
        decoder.endHeaderBlock(frame);

        assertFalse(headerBlock.isReadable());
        assertTrue(frame.isInvalid());
        assertEquals(0, frame.headers().names().size());
        headerBlock.release();
    }

    @Test
    public void testZeroNameValuePairs() throws Exception {
        ByteBuf headerBlock = Unpooled.buffer(4);
        headerBlock.writeInt(0);
        decoder.decode(ByteBufAllocator.DEFAULT, headerBlock, frame);
        decoder.endHeaderBlock(frame);

        assertFalse(headerBlock.isReadable());
        assertFalse(frame.isInvalid());
        assertEquals(0, frame.headers().names().size());
        headerBlock.release();
    }

    @Test
    public void testNegativeNameValuePairs() throws Exception {
        ByteBuf headerBlock = Unpooled.buffer(4);
        headerBlock.writeInt(-1);
        decoder.decode(ByteBufAllocator.DEFAULT, headerBlock, frame);

        assertFalse(headerBlock.isReadable());
        assertTrue(frame.isInvalid());
        assertEquals(0, frame.headers().names().size());
        headerBlock.release();
    }

    @Test
    public void testOneNameValuePair() throws Exception {
        ByteBuf headerBlock = Unpooled.buffer(21);
        headerBlock.writeInt(1);
        headerBlock.writeInt(4);
        headerBlock.writeBytes(nameBytes);
        headerBlock.writeInt(5);
        headerBlock.writeBytes(valueBytes);
        decoder.decode(ByteBufAllocator.DEFAULT, headerBlock, frame);
        decoder.endHeaderBlock(frame);

        assertFalse(headerBlock.isReadable());
        assertFalse(frame.isInvalid());
        assertEquals(1, frame.headers().names().size());
        assertTrue(frame.headers().contains(name));
        assertEquals(1, frame.headers().getAll(name).size());
        assertEquals(value, frame.headers().get(name));
        headerBlock.release();
    }

    @Test

Frequently Asked Questions

What is the SpdyHeaderBlockRawDecoderTest class?
SpdyHeaderBlockRawDecoderTest is a class in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyHeaderBlockRawDecoderTest.java.
Where is SpdyHeaderBlockRawDecoderTest defined?
SpdyHeaderBlockRawDecoderTest is defined in codec-http/src/test/java/io/netty/handler/codec/spdy/SpdyHeaderBlockRawDecoderTest.java at line 29.

Analyze Your Own Codebase

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

Try Supermodel Free