private async Task <InterceptedResponse> GetResponseFromLocalTargetAsync(IOnPremiseTargetConnector connector, string url, IOnPremiseTargetRequest onPremiseTargetRequest, string relayedRequestHeader) { var request = new InterceptedRequest(onPremiseTargetRequest); try { var requestInterceptor = _onPremiseInterceptorFactory.CreateOnPremiseRequestInterceptor(); requestInterceptor?.HandleRequest(request); } catch (Exception ex) { _logger?.Error(ex, "Error during intercepting the request. request-id={RequestId}", request.RequestId); } var onPremiseTargetResponse = await connector.GetResponseFromLocalTargetAsync(url, request, relayedRequestHeader).ConfigureAwait(false); var response = new InterceptedResponse(onPremiseTargetResponse); try { var responseInterceptor = _onPremiseInterceptorFactory.CreateOnPremiseResponseInterceptor(); responseInterceptor?.HandleResponse(request, response); } catch (Exception ex) { _logger?.Error(ex, "Error during intercepting the response. request-id={RequestId}", request.RequestId); } return(response); }
public void CanSetRequestPayloadAndReceiveItBackInInterceptedRequest() { // ARRANGE var requestPayload = "Test Payload"; InterceptedRequest interceptedRequest = null; var responseCreator = new Func <InterceptedRequest, HttpWebResponse>(req => { interceptedRequest = req; return(null); }); IWebRequestCreate creator = new HttpWebRequestWrapperInterceptorCreator(responseCreator); var request = creator.Create(new Uri("http://fakeSite.fake")); request.Method = "POST"; using (var sw = new StreamWriter(request.GetRequestStream())) sw.Write(requestPayload); // ACT request.GetResponse(); // ASSERT interceptedRequest.ShouldNotBeNull(); interceptedRequest.RequestPayload.ShouldEqual(requestPayload); }