Home / Class/ QpackDecoderDynamicTableTest Class — netty Architecture

QpackDecoderDynamicTableTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  091d8141_4743_3fd2_b4c8_b5018e33c504["QpackDecoderDynamicTableTest"]
  6d0d8c30_7e3b_7fc7_8fba_bf6e3e8d9d32["QpackDecoderDynamicTableTest.java"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|defined in| 6d0d8c30_7e3b_7fc7_8fba_bf6e3e8d9d32
  c9bfe71e_3d89_5e14_9594_9cea70b448a5["length()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| c9bfe71e_3d89_5e14_9594_9cea70b448a5
  becb0143_b4b9_93f8_4433_b28a9d88ee97["size()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| becb0143_b4b9_93f8_4433_b28a9d88ee97
  2f325bb8_3228_4f45_12c8_720ccf234b39["getEntry()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| 2f325bb8_3228_4f45_12c8_720ccf234b39
  3b4b8ac5_0a03_046c_2e97_35007579afae["getEntryExceptionally()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| 3b4b8ac5_0a03_046c_2e97_35007579afae
  6b7a7c02_4a90_20c8_86d6_a98036e7483f["setCapacity()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| 6b7a7c02_4a90_20c8_86d6_a98036e7483f
  bd9ed665_b3f8_a6a0_8149_c1e4807bbd9a["add()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| bd9ed665_b3f8_a6a0_8149_c1e4807bbd9a
  732f83db_a1a2_68be_c2e3_1de54de9beee["QpackDecoderDynamicTable()"]
  091d8141_4743_3fd2_b4c8_b5018e33c504 -->|method| 732f83db_a1a2_68be_c2e3_1de54de9beee

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderDynamicTableTest.java lines 25–129

public class QpackDecoderDynamicTableTest {

    private final QpackHeaderField fooBar = new QpackHeaderField("foo", "bar");

    @Test
    public void length() throws Exception {
        QpackDecoderDynamicTable table = newTable(100);
        assertEquals(0, table.length());
        table.add(fooBar);
        assertEquals(1, table.length());
        table.clear();
        assertEquals(0, table.length());
    }

    @Test
    public void size() throws Exception {
        QpackDecoderDynamicTable table = newTable(100);
        assertEquals(0, table.size());
        QpackHeaderField entry = new QpackHeaderField("foo", "bar");
        table.add(entry);
        assertEquals(entry.size(), table.size());
        table.clear();
        assertEquals(0, table.size());
    }

    @Test
    public void getEntry() throws Exception {
        QpackDecoderDynamicTable table = newTable(100);
        QpackHeaderField entry = new QpackHeaderField("foo", "bar");
        table.add(entry);
        assertEquals(entry, table.getEntry(0));
        table.clear();

        assertThrows(QpackException.class, () -> table.getEntry(0));
    }

    @Test
    public void getEntryExceptionally() throws Exception {
        QpackDecoderDynamicTable table = newTable(1);

        assertThrows(QpackException.class, () -> table.getEntry(0));
    }

    @Test
    public void setCapacity() throws Exception {
        QpackHeaderField entry1 = new QpackHeaderField("foo", "bar");
        QpackHeaderField entry2 = new QpackHeaderField("hello", "world");
        final long size1 = entry1.size();
        final long size2 = entry2.size();
        QpackDecoderDynamicTable table = newTable(size1 + size2);
        table.add(entry1);
        table.add(entry2);
        assertEquals(2, table.length());
        assertEquals(size1 + size2, table.size());
        assertEquals(entry1, table.getEntry(0));
        assertEquals(entry2, table.getEntry(1));

        table.setCapacity((size1 + size2) * 2); //larger capacity
        assertEquals(2, table.length());
        assertEquals(size1 + size2, table.size());

        table.setCapacity(size2); //smaller capacity
        //entry1 will be removed
        assertEquals(1, table.length());
        assertEquals(size2, table.size());
        assertEquals(entry2, table.getEntry(0));
        table.setCapacity(0); //clear all
        assertEquals(0, table.length());
        assertEquals(0, table.size());
    }

    @Test
    public void add() throws Exception {
        QpackDecoderDynamicTable table = newTable(100);
        assertEquals(0, table.size());
        QpackHeaderField entry1 = new QpackHeaderField("foo", "bar"); //size:3+3+32=38
        QpackHeaderField entry2 = new QpackHeaderField("hello", "world");
        table.add(entry1); //success
        assertEquals(entry1.size(), table.size());
        assertEquals(entry1, table.getEntry(0));
        table.setCapacity(32); //entry1 is removed from table

Frequently Asked Questions

What is the QpackDecoderDynamicTableTest class?
QpackDecoderDynamicTableTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderDynamicTableTest.java.
Where is QpackDecoderDynamicTableTest defined?
QpackDecoderDynamicTableTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackDecoderDynamicTableTest.java at line 25.

Analyze Your Own Codebase

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

Try Supermodel Free