UniformStreamByteDistributorTest Class — netty Architecture
Architecture documentation for the UniformStreamByteDistributorTest class in UniformStreamByteDistributorTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f["UniformStreamByteDistributorTest"] b551e995_3bb4_97d0_306f_77db1ac4ec9b["UniformStreamByteDistributorTest.java"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|defined in| b551e995_3bb4_97d0_306f_77db1ac4ec9b 75849638_989f_655e_1d7d_dc8477e8c8f6["setup()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 75849638_989f_655e_1d7d_dc8477e8c8f6 f3a4b43c_babc_6924_8349_fb09a2a08e04["writeAnswer()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| f3a4b43c_babc_6924_8349_fb09a2a08e04 ba51586b_9db8_a3bc_5389_8ae4d02826b8["resetWriter()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| ba51586b_9db8_a3bc_5389_8ae4d02826b8 59498931_38a4_a9e5_5599_b47a54ba0e4b["bytesUnassignedAfterProcessing()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 59498931_38a4_a9e5_5599_b47a54ba0e4b 05bc5ac6_f8e9_6aad_fa1a_e73aa259238b["connectionErrorForWriterException()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 05bc5ac6_f8e9_6aad_fa1a_e73aa259238b 1bcd0e0b_21ac_c26f_1eac_6781515ba458["minChunkShouldBeAllocatedPerStream()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 1bcd0e0b_21ac_c26f_1eac_6781515ba458 688b36ee_81a1_a272_d4d6_a5f1285683d5["streamWithMoreDataShouldBeEnqueuedAfterWrite()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 688b36ee_81a1_a272_d4d6_a5f1285683d5 c33847f9_9ef5_0cd4_37aa_1d872cf264f5["emptyFrameAtHeadIsWritten()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| c33847f9_9ef5_0cd4_37aa_1d872cf264f5 529feccb_987c_8256_b2b2_8dab7663329c["streamWindowExhaustedDoesNotWrite()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 529feccb_987c_8256_b2b2_8dab7663329c 092a439a_75a5_e1e7_edc5_9fbfef4a563b["streamWindowLargerThanIntDoesNotInfiniteLoop()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 092a439a_75a5_e1e7_edc5_9fbfef4a563b f9b03365_76c3_1df2_8b84_ffd7aa5b8633["Http2Stream()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| f9b03365_76c3_1df2_8b84_ffd7aa5b8633 874cc0a8_d364_ef65_d3c3_16d61b243e73["initState()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| 874cc0a8_d364_ef65_d3c3_16d61b243e73 a6c2aca6_aa8e_1f2c_221a_88b9bd0bd852["setPriority()"] c9ed8a9b_20d0_d85d_3ba2_4bce8a2cb72f -->|method| a6c2aca6_aa8e_1f2c_221a_88b9bd0bd852
Relationship Graph
Source Code
codec-http2/src/test/java/io/netty/handler/codec/http2/UniformStreamByteDistributorTest.java lines 52–283
public class UniformStreamByteDistributorTest {
private static final int CHUNK_SIZE = DEFAULT_MIN_ALLOCATION_CHUNK;
private static final int STREAM_A = 1;
private static final int STREAM_B = 3;
private static final int STREAM_C = 5;
private static final int STREAM_D = 7;
private Http2Connection connection;
private UniformStreamByteDistributor distributor;
private IntObjectMap<TestStreamByteDistributorStreamState> stateMap;
@Mock
private StreamByteDistributor.Writer writer;
@BeforeEach
public void setup() throws Http2Exception {
MockitoAnnotations.initMocks(this);
stateMap = new IntObjectHashMap<TestStreamByteDistributorStreamState>();
connection = new DefaultHttp2Connection(false);
distributor = new UniformStreamByteDistributor(connection);
// Assume we always write all the allocated bytes.
resetWriter();
connection.local().createStream(STREAM_A, false);
connection.local().createStream(STREAM_B, false);
Http2Stream streamC = connection.local().createStream(STREAM_C, false);
Http2Stream streamD = connection.local().createStream(STREAM_D, false);
setPriority(streamC.id(), STREAM_A, DEFAULT_PRIORITY_WEIGHT, false);
setPriority(streamD.id(), STREAM_A, DEFAULT_PRIORITY_WEIGHT, false);
}
private Answer<Void> writeAnswer() {
return new Answer<Void>() {
@Override
public Void answer(InvocationOnMock in) throws Throwable {
Http2Stream stream = in.getArgument(0);
int numBytes = in.getArgument(1);
TestStreamByteDistributorStreamState state = stateMap.get(stream.id());
state.pendingBytes -= numBytes;
state.hasFrame = state.pendingBytes > 0;
distributor.updateStreamableBytes(state);
return null;
}
};
}
private void resetWriter() {
reset(writer);
doAnswer(writeAnswer()).when(writer).write(any(Http2Stream.class), anyInt());
}
@Test
public void bytesUnassignedAfterProcessing() throws Http2Exception {
initState(STREAM_A, 1, true);
initState(STREAM_B, 2, true);
initState(STREAM_C, 3, true);
initState(STREAM_D, 4, true);
assertFalse(write(10));
verifyWrite(STREAM_A, 1);
verifyWrite(STREAM_B, 2);
verifyWrite(STREAM_C, 3);
verifyWrite(STREAM_D, 4);
verifyNoMoreInteractions(writer);
assertFalse(write(10));
verifyNoMoreInteractions(writer);
}
@Test
public void connectionErrorForWriterException() throws Http2Exception {
initState(STREAM_A, 1, true);
initState(STREAM_B, 2, true);
initState(STREAM_C, 3, true);
initState(STREAM_D, 4, true);
Exception fakeException = new RuntimeException("Fake exception");
doThrow(fakeException).when(writer).write(same(stream(STREAM_C)), eq(3));
Defined In
Source
Frequently Asked Questions
What is the UniformStreamByteDistributorTest class?
UniformStreamByteDistributorTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/UniformStreamByteDistributorTest.java.
Where is UniformStreamByteDistributorTest defined?
UniformStreamByteDistributorTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/UniformStreamByteDistributorTest.java at line 52.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free