use of com.webpieces.http2.api.dto.highlevel.Http2Response in project webpieces by deanhiller.
the class TestCBasicRequestResponse method testWithData.
@Test
public void testWithData() throws InterruptedException, ExecutionException, TimeoutException {
FullRequest request1 = Requests.createHttp2Request();
XFuture<FullResponse> future = httpSocket.send(request1);
Assert.assertFalse(future.isDone());
List<Http2Msg> frames = mockChannel.getFramesAndClear();
Assert.assertEquals(2, frames.size());
Http2Response resp = Requests.createResponse(request1.getHeaders().getStreamId());
mockChannel.write(resp);
Assert.assertFalse(future.isDone());
DataFrame data = Requests.createData(request1.getHeaders().getStreamId(), true);
mockChannel.write(data);
FullResponse response = future.get(2, TimeUnit.SECONDS);
Assert.assertEquals(2, response.getPayload().getReadableSize());
}
use of com.webpieces.http2.api.dto.highlevel.Http2Response in project webpieces by deanhiller.
the class TestCBasicRequestResponse method testWithDataAndTrailingHeaders.
@Test
public void testWithDataAndTrailingHeaders() throws InterruptedException, ExecutionException, TimeoutException {
FullRequest request1 = Requests.createHttp2Request();
Http2Trailers trailing = Requests.createTrailers();
request1.setTrailingHeaders(trailing);
XFuture<FullResponse> future = httpSocket.send(request1);
Assert.assertFalse(future.isDone());
List<Http2Msg> frames = mockChannel.getFramesAndClear();
Assert.assertEquals(3, frames.size());
Http2Response resp = Requests.createResponse(request1.getHeaders().getStreamId());
mockChannel.write(resp);
Assert.assertFalse(future.isDone());
DataFrame data = Requests.createData(request1.getHeaders().getStreamId(), false);
mockChannel.write(data);
Assert.assertFalse(future.isDone());
mockChannel.write(trailing);
FullResponse response = future.get(2, TimeUnit.SECONDS);
Assert.assertEquals(2, response.getPayload().getReadableSize());
Assert.assertNotNull(response.getTrailingHeaders());
}
use of com.webpieces.http2.api.dto.highlevel.Http2Response in project webpieces by deanhiller.
the class TestBackpressure method create4BuffersWith3Messags.
private List<ByteBuffer> create4BuffersWith3Messags() {
HpackStatefulParser parser = HpackParserFactory.createStatefulParser(new TwoPools("pl", new SimpleMeterRegistry()), new HpackConfig("tests"));
Http2Response response1 = Requests.createResponse(1);
DataFrame response2 = Requests.createBigData(1, false);
DataFrame response3 = Requests.createBigData(1, true);
DataWrapper buf1 = parser.marshal(response1);
DataWrapper buf2 = parser.marshal(response2);
DataWrapper buf3 = parser.marshal(response3);
// one big wrapper that we can slice up..
DataWrapper all = DATA_GEN.chainDataWrappers(buf1, buf2, buf3);
byte[] part1 = all.readBytesAt(0, 10);
byte[] part2 = all.readBytesAt(10, buf1.getReadableSize());
byte[] part3 = all.readBytesAt(10 + buf1.getReadableSize(), buf2.getReadableSize());
int offset = 10 + buf1.getReadableSize() + buf2.getReadableSize();
int remaining = all.getReadableSize() - offset;
byte[] part4 = all.readBytesAt(offset, remaining);
List<ByteBuffer> buffers = new ArrayList<>();
buffers.add(ByteBuffer.wrap(part1));
buffers.add(ByteBuffer.wrap(part2));
buffers.add(ByteBuffer.wrap(part3));
buffers.add(ByteBuffer.wrap(part4));
return buffers;
}
Aggregations