Home / Class/ DefaultHttp3SettingsFrameTest Class — netty Architecture

DefaultHttp3SettingsFrameTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  7f96b856_e26b_5a86_c5be_2535fa398741["DefaultHttp3SettingsFrameTest"]
  4b255852_c729_f083_81d9_009ce0807b44["DefaultHttp3SettingsFrameTest.java"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|defined in| 4b255852_c729_f083_81d9_009ce0807b44
  36258456_9730_c7bb_4fcf_d347d4e5893d["testDefaultFrameHasEmptySettings()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 36258456_9730_c7bb_4fcf_d347d4e5893d
  0fd40f18_b836_423b_2293_21690d23f9f4["testPutAndGetDelegatesToSettings()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 0fd40f18_b836_423b_2293_21690d23f9f4
  c6424af2_b179_251f_4a65_7e7dc58c0663["testPutRejectsReservedHttp2Settings()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| c6424af2_b179_251f_4a65_7e7dc58c0663
  3ce56767_db63_0ead_0827_12f75695752c["testSettingsReferenceIsRetained()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 3ce56767_db63_0ead_0827_12f75695752c
  014d7c28_f236_c78c_176f_a2e8702f50a7["testEqualsAndHashCodeCompareSettings()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 014d7c28_f236_c78c_176f_a2e8702f50a7
  f9c19fe6_d625_d224_c34e_c5f65d29a589["testIteratorReflectsSettingsEntries()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| f9c19fe6_d625_d224_c34e_c5f65d29a589
  a7a26fce_5abc_2652_ea2b_1d6218e3aca2["testToStringIncludesSettings()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| a7a26fce_5abc_2652_ea2b_1d6218e3aca2
  36e23970_56c5_57c9_953a_dc4977a732ae["testCopyOfCreatesDeepCopy()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 36e23970_56c5_57c9_953a_dc4977a732ae
  705a66ba_52bb_3c06_3d39_6225f23d2cbc["testDeprecatedMethodsStillWork()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 705a66ba_52bb_3c06_3d39_6225f23d2cbc
  8e70dea4_3e61_7574_aa8e_cf971a2a0ef9["testDuplicateKeyInSettingsFrameTriggersError()"]
  7f96b856_e26b_5a86_c5be_2535fa398741 -->|method| 8e70dea4_3e61_7574_aa8e_cf971a2a0ef9

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/DefaultHttp3SettingsFrameTest.java lines 36–162

class DefaultHttp3SettingsFrameTest {

    @Test
    void testDefaultFrameHasEmptySettings() {
        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame();

        assertNotNull(frame.settings());
        assertFalse(frame.iterator().hasNext());
        assertNull(frame.get(Http3SettingIdentifier.HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY.id()));
    }

    @Test
    void testPutAndGetDelegatesToSettings() {
        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame();

        frame.put(Http3SettingIdentifier.HTTP3_SETTINGS_QPACK_MAX_TABLE_CAPACITY.id(), 256L);
        frame.put(Http3SettingIdentifier.HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS.id(), 8L);

        assertEquals(256L, frame.settings().qpackMaxTableCapacity());
        assertEquals(8L, frame.settings().qpackBlockedStreams());
        assertEquals(8L, frame.get(Http3SettingIdentifier.HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS.id()));
    }

    @Test
    void testPutRejectsReservedHttp2Settings() {
        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame();
        assertThrows(IllegalArgumentException.class, () -> frame.put(0x4, 10L)); // HTTP/2 reserved key
    }

    @Test
    void testSettingsReferenceIsRetained() {
        Http3Settings settings = new Http3Settings().qpackMaxTableCapacity(512);
        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame(settings);

        assertSame(settings, frame.settings());
        assertEquals(512L, frame.settings().qpackMaxTableCapacity());

        // Modify settings externally and verify frame sees update
        settings.qpackBlockedStreams(3);
        assertEquals(3L, frame.get(Http3SettingIdentifier.HTTP3_SETTINGS_QPACK_BLOCKED_STREAMS.id()));
    }

    @Test
    void testEqualsAndHashCodeCompareSettings() {
        Http3Settings s1 = new Http3Settings().qpackMaxTableCapacity(128);
        Http3Settings s2 = new Http3Settings().qpackMaxTableCapacity(128);

        DefaultHttp3SettingsFrame f1 = new DefaultHttp3SettingsFrame(s1);
        DefaultHttp3SettingsFrame f2 = new DefaultHttp3SettingsFrame(s2);

        assertEquals(f1, f2);
        assertEquals(f1.hashCode(), f2.hashCode());
    }

    @Test
    void testIteratorReflectsSettingsEntries() {
        Http3Settings settings = new Http3Settings()
                .qpackMaxTableCapacity(64)
                .qpackBlockedStreams(2);
        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame(settings);

        Iterator<Map.Entry<Long, Long>> it = frame.iterator();
        int count = 0;
        while (it.hasNext()) {
            Map.Entry<Long, Long> entry = it.next();
            assertNotNull(entry.getKey());
            assertNotNull(entry.getValue());
            count++;
        }
        assertTrue(count >= 2);
    }

    @Test
    void testToStringIncludesSettings() {
        Http3Settings settings = new Http3Settings()
                .qpackMaxTableCapacity(1)
                .enableConnectProtocol(true);

        DefaultHttp3SettingsFrame frame = new DefaultHttp3SettingsFrame(settings);
        String output = frame.toString();

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free