use of com.linkedin.r2.testutils.filter.CaptureLastCallFilter in project rest.li by linkedin.
the class TestCapRepFilter method testStreamException.
@Test
public void testStreamException() throws IOException {
Path dirPath = Files.createTempDirectory("caprep-test");
CaptureLastCallFilter lastCallFilter = new CaptureLastCallFilter();
FilterChain fc = FilterChains.createStreamChain(StreamFilterAdapters.adaptRestFilter(lastCallFilter), _filter);
RestRequest myRequest = new RestRequestBuilder(URI.create("/req1")).setEntity("123".getBytes()).build();
RestResponse myErrorResponse = new RestResponseBuilder().setStatus(400).setEntity("321".getBytes()).build();
RestException myRestException = new RestException(myErrorResponse);
_filter.capture(dirPath.toString());
RequestContext requestContext = new RequestContext();
FilterUtil.fireStreamRequest(fc, Messages.toStreamRequest(myRequest), requestContext, FilterUtil.emptyWireAttrs());
FilterUtil.fireStreamError(fc, Messages.toStreamException(myRestException), requestContext, FilterUtil.emptyWireAttrs());
lastCallFilter.reset();
_filter.replay(dirPath.toString());
FilterUtil.fireSimpleStreamRequest(fc);
Assert.assertNull(lastCallFilter.getLastErr());
FilterUtil.fireStreamRequest(fc, Messages.toStreamRequest(myRequest));
Assert.assertTrue(lastCallFilter.getLastErr() instanceof RestException);
Assert.assertEquals(((RestException) lastCallFilter.getLastErr()).getResponse(), myErrorResponse);
}
use of com.linkedin.r2.testutils.filter.CaptureLastCallFilter in project rest.li by linkedin.
the class TestCapRepFilter method testStreamResponse.
@Test
public void testStreamResponse() throws IOException {
Path dirPath = Files.createTempDirectory("caprep-test");
StreamCountFilter after = new StreamCountFilter();
StreamCountFilter before = new StreamCountFilter();
CaptureLastCallFilter lastCallFilter = new CaptureLastCallFilter();
FilterChain fc = FilterChains.createStreamChain(StreamFilterAdapters.adaptRestFilter(lastCallFilter), before, _filter, after);
RestRequest myRequest = new RestRequestBuilder(URI.create("/req1")).setEntity("123".getBytes()).build();
RestResponse myResponse = new RestResponseBuilder().setStatus(201).setEntity("321".getBytes()).build();
_filter.capture(dirPath.toString());
RequestContext requestContext = new RequestContext();
FilterUtil.fireStreamRequest(fc, Messages.toStreamRequest(myRequest), requestContext, FilterUtil.emptyWireAttrs());
FilterUtil.fireStreamResponse(fc, Messages.toStreamResponse(myResponse), requestContext, FilterUtil.emptyWireAttrs());
Assert.assertEquals(after.getStreamReqCount(), 1);
Assert.assertEquals(after.getStreamResCount(), 1);
Assert.assertEquals(before.getStreamReqCount(), 1);
Assert.assertEquals(before.getStreamResCount(), 1);
lastCallFilter.reset();
_filter.passThrough();
FilterUtil.fireStreamRequest(fc, Messages.toStreamRequest(myRequest));
Assert.assertEquals(after.getStreamReqCount(), 2);
Assert.assertEquals(after.getStreamResCount(), 1);
Assert.assertEquals(before.getStreamReqCount(), 2);
Assert.assertEquals(before.getStreamResCount(), 1);
Assert.assertNull(lastCallFilter.getLastRes());
_filter.replay(dirPath.toString());
FilterUtil.fireSimpleStreamRequest(fc);
Assert.assertNull(lastCallFilter.getLastRes());
FilterUtil.fireStreamRequest(fc, Messages.toStreamRequest(myRequest), new RequestContext(), FilterUtil.emptyWireAttrs());
Assert.assertEquals(lastCallFilter.getLastRes(), myResponse);
Assert.assertEquals(after.getStreamReqCount(), 3);
Assert.assertEquals(after.getStreamResCount(), 1);
Assert.assertEquals(before.getStreamReqCount(), 4);
Assert.assertEquals(before.getStreamResCount(), 2);
}
use of com.linkedin.r2.testutils.filter.CaptureLastCallFilter in project rest.li by linkedin.
the class AbstractReplayFilterTest method testReplayWithNoMatch.
@Test
public void testReplayWithNoMatch() {
final RestRequest req = request();
final RestResponse res = response();
final CaptureLastCallFilter captureFilter = new CaptureLastCallFilter();
final FilterChain fc = getFilterChain().addFirstRest(captureFilter);
FilterUtil.fireUntypedRequestResponse(fc, req, res);
Assert.assertEquals(res, captureFilter.getLastRes());
}
use of com.linkedin.r2.testutils.filter.CaptureLastCallFilter in project rest.li by linkedin.
the class TestCapRepFilter method testRestException.
@Test
public void testRestException() throws IOException {
Path dirPath = Files.createTempDirectory("caprep-test");
CaptureLastCallFilter lastCallFilter = new CaptureLastCallFilter();
FilterChain fc = FilterChains.createRestChain(lastCallFilter, _filter);
RestRequest myRequest = new RestRequestBuilder(URI.create("/req1")).setEntity("123".getBytes()).build();
RestResponse myErrorResponse = new RestResponseBuilder().setStatus(400).setEntity("321".getBytes()).build();
RestException myRestException = new RestException(myErrorResponse);
_filter.capture(dirPath.toString());
RequestContext requestContext = new RequestContext();
FilterUtil.fireRestRequest(fc, myRequest, requestContext, FilterUtil.emptyWireAttrs());
FilterUtil.fireRestError(fc, myRestException, requestContext, FilterUtil.emptyWireAttrs());
lastCallFilter.reset();
_filter.replay(dirPath.toString());
FilterUtil.fireSimpleRestRequest(fc);
Assert.assertNull(lastCallFilter.getLastErr());
FilterUtil.fireRestRequest(fc, myRequest);
Assert.assertTrue(lastCallFilter.getLastErr() instanceof RestException);
Assert.assertEquals(((RestException) lastCallFilter.getLastErr()).getResponse(), myErrorResponse);
}
use of com.linkedin.r2.testutils.filter.CaptureLastCallFilter in project rest.li by linkedin.
the class TestCapRepFilter method testRestResponse.
@Test
public void testRestResponse() throws IOException {
Path dirPath = Files.createTempDirectory("caprep-test");
RestCountFilter after = new RestCountFilter();
RestCountFilter before = new RestCountFilter();
CaptureLastCallFilter lastCallFilter = new CaptureLastCallFilter();
FilterChain fc = FilterChains.createRestChain(lastCallFilter, before, _filter, after);
RestRequest myRequest = new RestRequestBuilder(URI.create("/req1")).setEntity("123".getBytes()).build();
RestResponse myResponse = new RestResponseBuilder().setStatus(201).setEntity("321".getBytes()).build();
_filter.capture(dirPath.toString());
RequestContext requestContext = new RequestContext();
FilterUtil.fireRestRequest(fc, myRequest, requestContext, FilterUtil.emptyWireAttrs());
FilterUtil.fireRestResponse(fc, myResponse, requestContext, FilterUtil.emptyWireAttrs());
Assert.assertEquals(after.getRestReqCount(), 1);
Assert.assertEquals(after.getRestResCount(), 1);
Assert.assertEquals(before.getRestReqCount(), 1);
Assert.assertEquals(before.getRestResCount(), 1);
lastCallFilter.reset();
_filter.passThrough();
FilterUtil.fireRestRequest(fc, myRequest);
Assert.assertEquals(after.getRestReqCount(), 2);
Assert.assertEquals(after.getRestResCount(), 1);
Assert.assertEquals(before.getRestReqCount(), 2);
Assert.assertEquals(before.getRestResCount(), 1);
Assert.assertNull(lastCallFilter.getLastRes());
_filter.replay(dirPath.toString());
FilterUtil.fireSimpleRestRequest(fc);
Assert.assertNull(lastCallFilter.getLastRes());
FilterUtil.fireRestRequest(fc, myRequest);
Assert.assertEquals(lastCallFilter.getLastRes(), myResponse);
Assert.assertEquals(after.getRestReqCount(), 3);
Assert.assertEquals(after.getRestResCount(), 1);
Assert.assertEquals(before.getRestReqCount(), 4);
Assert.assertEquals(before.getRestResCount(), 2);
}
Aggregations