예제 #1
0
        public CorrelationHandler SetupCorrelationHandler()
        {
            var handler = new CorrelationHandler();

            var innerHandler = new InnerHandlerMock();

            innerHandler.AssertResponse(new HttpResponseMessage(HttpStatusCode.OK));
            handler.InnerHandler = innerHandler;

            return(handler);
        }
예제 #2
0
            public void SetupOuterRedirectingHandler()
            {
                int callCount = 0;

                InnerHandlerMock
                .Protected()
                .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>())
                .Returns <HttpRequestMessage, CancellationToken>((request, cancellationToken) =>
                {
                    callCount++;
                    HttpResponseMessage response;
                    if (callCount == 1)
                    {
                        response = new HttpResponseMessage(HttpStatusCode.Found)
                        {
                            Content        = new StringContent(string.Empty),
                            RequestMessage = request
                        };
                        response.Headers.Location = new Uri("http://example/second");
                    }
                    else
                    {
                        response = new HttpResponseMessage(HttpStatusCode.OK)
                        {
                            Content        = new StringContent(string.Empty),
                            RequestMessage = request
                        };
                    }

                    return(Task.FromResult(response));
                });

                HttpClient = new HttpClient(new RedirectingHandler
                {
                    InnerHandler = new LoggingHandler(HttpMessageStoreMock.Object)
                    {
                        InnerHandler = InnerHandlerMock.Object
                    }
                });
            }