Search in sources :

Example 1 with BasicH2TransportMetrics

use of org.apache.hc.core5.http2.impl.BasicH2TransportMetrics in project httpcomponents-core by apache.

the class TestFrameInOutBuffers method testReadFrameMultipleSmallBuffer.

@Test
public void testReadFrameMultipleSmallBuffer() throws Exception {
    final FrameInputBuffer inBuffer = new FrameInputBuffer(new BasicH2TransportMetrics(), 20, 10);
    final ReadableByteChannelMock readableChannel = new ReadableByteChannelMock(new byte[] { 0, 0, 10, 0, 8, 0, 0, 0, 8, 4, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 8, 2, 2, 2, 2, 2, 0, 0, 10, 0, 9, 0, 0, 0, 8, 4, 3, 3, 3, 3, 3, 0, 0, 0, 0 });
    final RawFrame frame1 = inBuffer.read(readableChannel);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame1.getType()));
    Assertions.assertEquals(8, frame1.getFlags());
    Assertions.assertEquals(8, frame1.getStreamId());
    final ByteBuffer payload1 = frame1.getPayloadContent();
    Assertions.assertNotNull(payload1);
    Assertions.assertEquals(5, payload1.remaining());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    final RawFrame frame2 = inBuffer.read(readableChannel);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame2.getType()));
    Assertions.assertEquals(0, frame2.getFlags());
    Assertions.assertEquals(8, frame2.getStreamId());
    final ByteBuffer payload2 = frame2.getPayloadContent();
    Assertions.assertNotNull(payload2);
    Assertions.assertEquals(5, payload2.remaining());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    final RawFrame frame3 = inBuffer.read(readableChannel);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame3.getType()));
    Assertions.assertEquals(FrameFlag.of(FrameFlag.END_STREAM, FrameFlag.PADDED), frame3.getFlags());
    Assertions.assertEquals(8, frame3.getStreamId());
    final ByteBuffer payload3 = frame3.getPayloadContent();
    Assertions.assertNotNull(payload3);
    Assertions.assertEquals(5, payload3.remaining());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(-1, readableChannel.read(ByteBuffer.allocate(1024)));
}
Also used : BasicH2TransportMetrics(org.apache.hc.core5.http2.impl.BasicH2TransportMetrics) RawFrame(org.apache.hc.core5.http2.frame.RawFrame) ReadableByteChannelMock(org.apache.hc.core5.http2.ReadableByteChannelMock) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.jupiter.api.Test)

Example 2 with BasicH2TransportMetrics

use of org.apache.hc.core5.http2.impl.BasicH2TransportMetrics in project httpcomponents-core by apache.

the class TestFrameInOutBuffers method testReadFrameMultipleSmallBuffer.

@Test
public void testReadFrameMultipleSmallBuffer() throws Exception {
    final FrameInputBuffer inBuffer = new FrameInputBuffer(new BasicH2TransportMetrics(), 20, 10);
    final ByteArrayInputStream inputStream = new ByteArrayInputStream(new byte[] { 0, 0, 10, 0, 8, 0, 0, 0, 8, 4, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 8, 2, 2, 2, 2, 2, 0, 0, 10, 0, 9, 0, 0, 0, 8, 4, 3, 3, 3, 3, 3, 0, 0, 0, 0 });
    final RawFrame frame1 = inBuffer.read(inputStream);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame1.getType()));
    Assertions.assertEquals(8, frame1.getFlags());
    Assertions.assertEquals(8, frame1.getStreamId());
    final ByteBuffer payload1 = frame1.getPayloadContent();
    Assertions.assertNotNull(payload1);
    Assertions.assertEquals(5, payload1.remaining());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    Assertions.assertEquals(1, payload1.get());
    final RawFrame frame2 = inBuffer.read(inputStream);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame2.getType()));
    Assertions.assertEquals(0, frame2.getFlags());
    Assertions.assertEquals(8, frame2.getStreamId());
    final ByteBuffer payload2 = frame2.getPayloadContent();
    Assertions.assertNotNull(payload2);
    Assertions.assertEquals(5, payload2.remaining());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    Assertions.assertEquals(2, payload2.get());
    final RawFrame frame3 = inBuffer.read(inputStream);
    Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame3.getType()));
    Assertions.assertEquals(FrameFlag.of(FrameFlag.END_STREAM, FrameFlag.PADDED), frame3.getFlags());
    Assertions.assertEquals(8, frame3.getStreamId());
    final ByteBuffer payload3 = frame3.getPayloadContent();
    Assertions.assertNotNull(payload3);
    Assertions.assertEquals(5, payload3.remaining());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(3, payload3.get());
    Assertions.assertEquals(-1, inputStream.read());
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) BasicH2TransportMetrics(org.apache.hc.core5.http2.impl.BasicH2TransportMetrics) RawFrame(org.apache.hc.core5.http2.frame.RawFrame) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.jupiter.api.Test)

Aggregations

ByteBuffer (java.nio.ByteBuffer)2 RawFrame (org.apache.hc.core5.http2.frame.RawFrame)2 BasicH2TransportMetrics (org.apache.hc.core5.http2.impl.BasicH2TransportMetrics)2 Test (org.junit.jupiter.api.Test)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ReadableByteChannelMock (org.apache.hc.core5.http2.ReadableByteChannelMock)1