use of org.apache.hc.core5.http2.ReadableByteChannelMock in project httpcomponents-core by apache.
the class TestFrameInOutBuffers method testReadFrameConnectionClosed.
@Test
public void testReadFrameConnectionClosed() throws Exception {
final FrameInputBuffer inBuffer = new FrameInputBuffer(16 * 1024);
final ReadableByteChannelMock readableChannel = new ReadableByteChannelMock(new byte[] {});
Assertions.assertNull(inBuffer.read(readableChannel));
Assertions.assertThrows(ConnectionClosedException.class, () -> inBuffer.read(readableChannel));
}
use of org.apache.hc.core5.http2.ReadableByteChannelMock in project httpcomponents-core by apache.
the class TestFrameInOutBuffers method testReadFrameMultiple.
@Test
public void testReadFrameMultiple() throws Exception {
final FrameInputBuffer inBuffer = new FrameInputBuffer(16 * 1024);
final ReadableByteChannelMock readableChannel = new ReadableByteChannelMock(new byte[] { 0, 0, 10, 0, 8, 0, 0, 0, 8, 4, 0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 10, 0, 9, 0, 0, 0, 8, 4, 5, 6, 7, 8, 9, 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(0, payload1.get());
Assertions.assertEquals(1, payload1.get());
Assertions.assertEquals(2, payload1.get());
Assertions.assertEquals(3, payload1.get());
Assertions.assertEquals(4, payload1.get());
final RawFrame frame2 = inBuffer.read(readableChannel);
Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame2.getType()));
Assertions.assertEquals(FrameFlag.of(FrameFlag.END_STREAM, FrameFlag.PADDED), frame2.getFlags());
Assertions.assertEquals(8, frame2.getStreamId());
final ByteBuffer payload2 = frame2.getPayloadContent();
Assertions.assertNotNull(payload2);
Assertions.assertEquals(5, payload2.remaining());
Assertions.assertEquals(5, payload2.get());
Assertions.assertEquals(6, payload2.get());
Assertions.assertEquals(7, payload2.get());
Assertions.assertEquals(8, payload2.get());
Assertions.assertEquals(9, payload2.get());
Assertions.assertEquals(-1, readableChannel.read(ByteBuffer.allocate(1024)));
}
use of org.apache.hc.core5.http2.ReadableByteChannelMock 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)));
}
use of org.apache.hc.core5.http2.ReadableByteChannelMock in project httpcomponents-core by apache.
the class TestFrameInOutBuffers method testReadFrameCorruptFrame.
@Test
public void testReadFrameCorruptFrame() throws Exception {
final FrameInputBuffer inBuffer = new FrameInputBuffer(16 * 1024);
final ReadableByteChannelMock readableChannel = new ReadableByteChannelMock(new byte[] { 0, 0 });
Assertions.assertThrows(H2CorruptFrameException.class, () -> inBuffer.read(readableChannel));
}
use of org.apache.hc.core5.http2.ReadableByteChannelMock in project httpcomponents-core by apache.
the class TestFrameInOutBuffers method testReadEmptyFrame.
@Test
public void testReadEmptyFrame() throws Exception {
final FrameInputBuffer inBuffer = new FrameInputBuffer(16 * 1024);
final ReadableByteChannelMock readableChannel = new ReadableByteChannelMock(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 });
final RawFrame frame = inBuffer.read(readableChannel);
Assertions.assertEquals(FrameType.DATA, FrameType.valueOf(frame.getType()));
Assertions.assertEquals(0, frame.getFlags());
Assertions.assertEquals(0, frame.getStreamId());
final ByteBuffer payload = frame.getPayloadContent();
Assertions.assertNull(payload);
}
Aggregations