Home / Class/ DefaultHttp2ConnectionEncoderTest Class — netty Architecture

DefaultHttp2ConnectionEncoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  aef19477_9a1f_48c4_824a_17c7f3ecbb10["DefaultHttp2ConnectionEncoderTest"]
  82febf1b_e23a_0053_b4fd_3ce240942014["DefaultHttp2ConnectionEncoderTest.java"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|defined in| 82febf1b_e23a_0053_b4fd_3ce240942014
  9894e144_8595_19eb_562f_72a11f871adc["setup()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 9894e144_8595_19eb_562f_72a11f871adc
  b5ba1e83_f8cf_fb08_6613_424c959dbff7["dataWithEndOfStreamWriteShouldSignalThatFrameWasConsumedOnError()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| b5ba1e83_f8cf_fb08_6613_424c959dbff7
  6f2b008c_991c_ccc6_8ae8_0801469fdc01["dataWriteShouldSignalThatFrameWasConsumedOnError()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 6f2b008c_991c_ccc6_8ae8_0801469fdc01
  46b33e92_e938_7e85_9fcd_fafe2ba99ac9["dataWriteShouldSignalThatFrameWasConsumedOnError0()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 46b33e92_e938_7e85_9fcd_fafe2ba99ac9
  42ac58a2_9b3d_8db3_37dd_dceb648c3a40["dataWriteShouldSucceed()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 42ac58a2_9b3d_8db3_37dd_dceb648c3a40
  6279f754_6bc9_dcee_4540_49fea32fd5e4["dataFramesShouldMerge()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 6279f754_6bc9_dcee_4540_49fea32fd5e4
  a47db7fd_1d6a_3571_86d4_0505d2a63756["dataFramesShouldMergeUseVoidPromise()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| a47db7fd_1d6a_3571_86d4_0505d2a63756
  f714ddd1_d034_be52_a774_2ce2c33af95f["dataFramesDontMergeWithHeaders()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| f714ddd1_d034_be52_a774_2ce2c33af95f
  247dab21_0f35_bdbe_84d6_1f314359ac04["emptyFrameShouldSplitPadding()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 247dab21_0f35_bdbe_84d6_1f314359ac04
  11c8cfd7_91a9_94d6_cef3_160be3093885["writeHeadersUsingVoidPromise()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 11c8cfd7_91a9_94d6_cef3_160be3093885
  111fead0_62da_fdaa_9f54_af2140f5a5f1["assertSplitPaddingOnEmptyBuffer()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| 111fead0_62da_fdaa_9f54_af2140f5a5f1
  e9d74205_8fd7_9ac0_9861_736c0911f3b0["headersWriteForUnknownStreamShouldCreateStream()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| e9d74205_8fd7_9ac0_9861_736c0911f3b0
  c2155260_3f62_42df_f1ef_5555ef1b5c87["headersWriteShouldOpenStreamForPush()"]
  aef19477_9a1f_48c4_824a_17c7f3ecbb10 -->|method| c2155260_3f62_42df_f1ef_5555ef1b5c87

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoderTest.java lines 79–956

public class DefaultHttp2ConnectionEncoderTest {
    private static final int STREAM_ID = 2;
    private static final int PUSH_STREAM_ID = 4;

    @Mock
    private Http2RemoteFlowController remoteFlow;

    @Mock
    private ChannelHandlerContext ctx;

    @Mock
    private Channel channel;

    @Mock
    private Channel.Unsafe unsafe;

    @Mock
    private ChannelPipeline pipeline;

    @Mock
    private Http2FrameWriter writer;

    @Mock
    private Http2FrameWriter.Configuration writerConfig;

    @Mock
    private Http2FrameSizePolicy frameSizePolicy;

    @Mock
    private Http2LifecycleManager lifecycleManager;

    private DefaultHttp2ConnectionEncoder encoder;
    private Http2Connection connection;
    private ArgumentCaptor<Http2RemoteFlowController.FlowControlled> payloadCaptor;
    private List<String> writtenData;
    private List<Integer> writtenPadding;
    private boolean streamClosed;

    @BeforeEach
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);

        ChannelMetadata metadata = new ChannelMetadata(false, 16);
        when(channel.isActive()).thenReturn(true);
        when(channel.pipeline()).thenReturn(pipeline);
        when(channel.metadata()).thenReturn(metadata);
        when(channel.unsafe()).thenReturn(unsafe);
        ChannelConfig config = new DefaultChannelConfig(channel);
        when(channel.config()).thenReturn(config);
        doAnswer(new Answer<ChannelFuture>() {
            @Override
            public ChannelFuture answer(InvocationOnMock in) {
                return newPromise().setFailure((Throwable) in.getArgument(0));
            }
        }).when(channel).newFailedFuture(any(Throwable.class));

        when(writer.configuration()).thenReturn(writerConfig);
        when(writerConfig.frameSizePolicy()).thenReturn(frameSizePolicy);
        when(frameSizePolicy.maxFrameSize()).thenReturn(64);
        doAnswer(new Answer<ChannelFuture>() {
            @Override
            public ChannelFuture answer(InvocationOnMock in) throws Throwable {
                return ((ChannelPromise) in.getArguments()[2]).setSuccess();
            }
        }).when(writer).writeSettings(eq(ctx), any(Http2Settings.class), any(ChannelPromise.class));
        doAnswer(new Answer<ChannelFuture>() {
            @Override
            public ChannelFuture answer(InvocationOnMock in) throws Throwable {
                ((ByteBuf) in.getArguments()[3]).release();
                return ((ChannelPromise) in.getArguments()[4]).setSuccess();
            }
        }).when(writer).writeGoAway(eq(ctx), anyInt(), anyInt(), any(ByteBuf.class), any(ChannelPromise.class));
        writtenData = new ArrayList<String>();
        writtenPadding = new ArrayList<Integer>();
        when(writer.writeData(eq(ctx), anyInt(), any(ByteBuf.class), anyInt(), anyBoolean(),
                any(ChannelPromise.class))).then(new Answer<ChannelFuture>() {
                    @Override
                    public ChannelFuture answer(InvocationOnMock in) throws Throwable {
                        // Make sure we only receive stream closure on the last frame and that void promises
                        // are used for all writes except the last one.
                        ChannelPromise promise = (ChannelPromise) in.getArguments()[5];

Frequently Asked Questions

What is the DefaultHttp2ConnectionEncoderTest class?
DefaultHttp2ConnectionEncoderTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoderTest.java.
Where is DefaultHttp2ConnectionEncoderTest defined?
DefaultHttp2ConnectionEncoderTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoderTest.java at line 79.

Analyze Your Own Codebase

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

Try Supermodel Free