Http3UnidirectionalStreamInboundHandlerTest Class — netty Architecture
Architecture documentation for the Http3UnidirectionalStreamInboundHandlerTest class in Http3UnidirectionalStreamInboundHandlerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 25ca3b24_17b0_d7c2_ddbd_1036d0071d78["Http3UnidirectionalStreamInboundHandlerTest"] d4bd49c1_04e8_f306_7eb8_462c9f165a30["Http3UnidirectionalStreamInboundHandlerTest.java"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|defined in| d4bd49c1_04e8_f306_7eb8_462c9f165a30 56d89f3f_d102_9002_53c9_94064eade84d["setup()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 56d89f3f_d102_9002_53c9_94064eade84d 0ad0ad07_343a_2b1a_5d46_f539abbc3caf["tearDown()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 0ad0ad07_343a_2b1a_5d46_f539abbc3caf 23f62246_ed98_eee2_7f91_05faca509f04["testUnkownStream()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 23f62246_ed98_eee2_7f91_05faca509f04 bd49b894_53c0_806b_e8b9_e186d70615c9["testUnknownStreamWithCustomHandler()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| bd49b894_53c0_806b_e8b9_e186d70615c9 0b8b1912_5637_ceae_7341_bcee2775d1dd["testPushStream()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 0b8b1912_5637_ceae_7341_bcee2775d1dd 87cb4ed9_1527_5527_6f8f_cc1a36ab73e8["testPushStreamNoMaxPushIdFrameSent()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 87cb4ed9_1527_5527_6f8f_cc1a36ab73e8 6272574f_606a_0075_7214_dd955f20ac1d["testPushStreamMaxPushIdFrameSentWithSmallerId()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 6272574f_606a_0075_7214_dd955f20ac1d aa16368c_db81_9514_0dc1_f7151525e610["testPushStreamMaxPushIdFrameSentWithSameId()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| aa16368c_db81_9514_0dc1_f7151525e610 91996be4_48d6_837c_e776_be28e2388c80["testControlStream()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 91996be4_48d6_837c_e776_be28e2388c80 37882d9f_249f_3be4_894d_de1361a472a1["testQpackEncoderStream()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 37882d9f_249f_3be4_894d_de1361a472a1 09bd5794_4144_fe2f_2745_0023378c05ba["testQpackDecoderStream()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 09bd5794_4144_fe2f_2745_0023378c05ba 9bb3a719_0678_c8b6_ba9d_662698a1170f["testStreamSetup()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 9bb3a719_0678_c8b6_ba9d_662698a1170f 025a8430_c4df_b9ca_7c08_4c2566f638fb["EmbeddedChannel()"] 25ca3b24_17b0_d7c2_ddbd_1036d0071d78 -->|method| 025a8430_c4df_b9ca_7c08_4c2566f638fb
Relationship Graph
Source Code
codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java lines 45–287
public class Http3UnidirectionalStreamInboundHandlerTest {
private EmbeddedQuicChannel parent;
private Http3ControlStreamOutboundHandler remoteControlStreamHandler;
private Http3ControlStreamInboundHandler localControlStreamHandler;
private QpackEncoder qpackEncoder;
private QpackDecoder qpackDecoder;
private void setup(boolean server) {
parent = new EmbeddedQuicChannel(server);
qpackEncoder = new QpackEncoder();
qpackDecoder = new QpackDecoder(0, 0);
localControlStreamHandler = new Http3ControlStreamInboundHandler(server, null, qpackEncoder,
remoteControlStreamHandler);
remoteControlStreamHandler = new Http3ControlStreamOutboundHandler(server, new DefaultHttp3SettingsFrame(),
new CodecHandler());
}
@AfterEach
public void tearDown() {
assertFalse(parent.finish());
}
@ParameterizedTest(name = "{index}: server = {0}")
@ValueSource(booleans = {false, true})
public void testUnkownStream(boolean server) throws Exception {
setup(server);
EmbeddedChannel channel = newChannel(server);
ByteBuf buffer = Unpooled.buffer(8);
Http3CodecUtils.writeVariableLengthInteger(buffer, 0x06);
assertFalse(channel.writeInbound(buffer));
assertEquals(0, buffer.refCnt());
assertNull(channel.pipeline().context(Http3UnidirectionalStreamInboundHandler.class));
assertTrue(channel.isActive());
// Write some buffer to the stream. This should be just released.
ByteBuf someBuffer = Unpooled.buffer();
assertFalse(channel.writeInbound(someBuffer));
assertEquals(0, someBuffer.refCnt());
assertFalse(channel.finish());
}
@ParameterizedTest(name = "{index}: server = {0}")
@ValueSource(booleans = {false, true})
public void testUnknownStreamWithCustomHandler(boolean server) throws Exception {
setup(server);
long streamType = 0x06;
EmbeddedChannel channel = newChannel(server, v -> {
assertEquals(streamType, v);
// Add an handler that will just forward the received bytes.
return new ChannelInboundHandlerAdapter();
});
ByteBuf buffer = Unpooled.buffer(8);
Http3CodecUtils.writeVariableLengthInteger(buffer, streamType);
assertFalse(channel.writeInbound(buffer));
assertEquals(0, buffer.refCnt());
assertNull(channel.pipeline().context(Http3UnidirectionalStreamInboundHandler.class));
assertTrue(channel.isActive());
// Write some buffer to the stream. This should be just released.
ByteBuf someBuffer = Unpooled.buffer().writeLong(9);
assertTrue(channel.writeInbound(someBuffer.retainedDuplicate()));
assertTrue(channel.finish());
Http3TestUtils.assertBufferEquals(someBuffer, channel.readInbound());
assertNull(channel.readInbound());
}
@ParameterizedTest(name = "{index}: server = {0}")
@ValueSource(booleans = {false, true})
public void testPushStream(boolean server) throws Exception {
setup(server);
EmbeddedChannel channel = newChannel(server);
ByteBuf buffer = Unpooled.buffer(8);
Http3CodecUtils.writeVariableLengthInteger(buffer, HTTP3_PUSH_STREAM_TYPE);
Http3CodecUtils.writeVariableLengthInteger(buffer, 2);
assertFalse(channel.writeInbound(buffer));
assertEquals(0, buffer.refCnt());
if (server) {
Http3TestUtils.verifyClose(Http3ErrorCode.H3_STREAM_CREATION_ERROR, (EmbeddedQuicChannel) channel.parent());
} else {
Source
Frequently Asked Questions
What is the Http3UnidirectionalStreamInboundHandlerTest class?
Http3UnidirectionalStreamInboundHandlerTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java.
Where is Http3UnidirectionalStreamInboundHandlerTest defined?
Http3UnidirectionalStreamInboundHandlerTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandlerTest.java at line 45.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free