Search in sources :

Example 1 with MultiplexedRequest

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();
}
Also used : RestResponse(com.linkedin.r2.message.rest.RestResponse) ByteString(com.linkedin.data.ByteString) URI(java.net.URI) MultiplexedRequest(com.linkedin.restli.client.multiplexer.MultiplexedRequest) RestRequest(com.linkedin.r2.message.rest.RestRequest) RestResponseDecoder(com.linkedin.restli.internal.client.RestResponseDecoder) RecordTemplate(com.linkedin.data.template.RecordTemplate) Client(com.linkedin.r2.transport.common.Client) FutureCallback(com.linkedin.common.callback.FutureCallback)

Aggregations

FutureCallback (com.linkedin.common.callback.FutureCallback)1 ByteString (com.linkedin.data.ByteString)1 RecordTemplate (com.linkedin.data.template.RecordTemplate)1 RestRequest (com.linkedin.r2.message.rest.RestRequest)1 RestResponse (com.linkedin.r2.message.rest.RestResponse)1 Client (com.linkedin.r2.transport.common.Client)1 MultiplexedRequest (com.linkedin.restli.client.multiplexer.MultiplexedRequest)1 RestResponseDecoder (com.linkedin.restli.internal.client.RestResponseDecoder)1 URI (java.net.URI)1