use of com.linkedin.restli.client.multiplexer.MultiplexedRequest in project rest.li by linkedin.
the class TestRestClientRequestBuilder method clientGeneratedMultiplexedRestRequest.
@SuppressWarnings({ "unchecked", "rawtypes", "deprecation" })
private <T extends Request> RestRequest clientGeneratedMultiplexedRestRequest(Class<T> requestClass, ResourceMethod method, DataMap entityBody, ContentType contentType, List<ContentType> acceptTypes) throws URISyntaxException, RestLiEncodingException {
// massive setup...
Client mockClient = EasyMock.createMock(Client.class);
@SuppressWarnings({ "rawtypes" }) Request<?> mockRequest = EasyMock.createMock(requestClass);
RecordTemplate mockRecordTemplate = EasyMock.createMock(RecordTemplate.class);
@SuppressWarnings({ "rawtypes" }) RestResponseDecoder mockResponseDecoder = EasyMock.createMock(RestResponseDecoder.class);
RestliRequestOptions requestOptions = new RestliRequestOptions(ProtocolVersionOption.USE_LATEST_IF_AVAILABLE, null, null, contentType, acceptTypes, false, null);
setCommonExpectations(mockRequest, method, mockResponseDecoder, requestOptions);
if (entityBody != null) {
EasyMock.expect(mockRequest.getInputRecord()).andReturn(mockRecordTemplate).anyTimes();
EasyMock.expect(mockRecordTemplate.data()).andReturn(entityBody).anyTimes();
} else {
EasyMock.expect(mockRequest.getInputRecord()).andReturn(null).anyTimes();
}
Capture<RestRequest> restRequestCapture = EasyMock.newCapture();
EasyMock.expect(mockClient.getMetadata(new URI(HOST + SERVICE_NAME))).andReturn(Collections.<String, Object>emptyMap()).once();
mockClient.restRequest(EasyMock.capture(restRequestCapture), (RequestContext) EasyMock.anyObject(), (Callback<RestResponse>) EasyMock.anyObject());
EasyMock.expectLastCall().once();
EasyMock.replay(mockClient, mockRequest, mockRecordTemplate);
// do work!
RestClient restClient = new RestClient(mockClient, HOST);
MultiplexedRequest multiplexedRequest = MultiplexedRequestBuilder.createParallelRequest().addRequest(mockRequest, new FutureCallback()).setRequestOptions(requestOptions).build();
restClient.sendRequest(multiplexedRequest);
return restRequestCapture.getValue();
}
Aggregations