public void ClientAddHandlerToPipelineAddsHandler()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler());
            var result1 = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.OK, result1.Result.StatusCode);

            fakeClient.AddHandlerToPipeline(new BadResponseDelegatingHandler());

            var result2 = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.InternalServerError, result2.Result.StatusCode);
        }
        public void ClientAddHandlerToPipelineAddsHandler()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler());
            var result1    = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.OK, result1.Result.StatusCode);

            fakeClient.AddHandlerToPipeline(new BadResponseDelegatingHandler());

            var result2 = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.InternalServerError, result2.Result.StatusCode);
        }
        public void ClientAddHandlersToPipelineAddMultipleHandler()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler());
            var result1 = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.OK, result1.Result.StatusCode);

            fakeClient = fakeClient.WithHandlers(new DelegatingHandler[] {
                new BadResponseDelegatingHandler(),
                new AddHeaderResponseDelegatingHandler("foo", "bar"),
            });

            var result2 = fakeClient.DoStuff();
            Assert.Equal(result2.Result.Headers.GetValues("foo").FirstOrDefault(), "bar");
            Assert.Equal(HttpStatusCode.InternalServerError, result2.Result.StatusCode);
        }
Exemplo n.º 4
0
        public void ClientAddHandlersToPipelineAddMultipleHandler()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler());
            var result1    = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.OK, result1.Result.StatusCode);

            fakeClient = fakeClient.WithHandlers(new DelegatingHandler[] {
                new BadResponseDelegatingHandler(),
                new AddHeaderResponseDelegatingHandler("foo", "bar"),
            });

            var result2 = fakeClient.DoStuff();

            Assert.Equal(result2.Result.Headers.GetValues("foo").FirstOrDefault(), "bar");
            Assert.Equal(HttpStatusCode.InternalServerError, result2.Result.StatusCode);
        }
Exemplo n.º 5
0
        public void ClientWithoutHandlerWorks()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                                                   new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;

            Assert.Equal("Text", response);
        }
        public void RetryHandlerRetriesWith500Errors()
        {
            var fakeClient = new FakeServiceClient(new FakeHttpHandler());
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy<DefaultHttpErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.GetHttpPipeline().OfType<RetryHandler>().FirstOrDefault();
            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.InternalServerError, result.Result.StatusCode);
            Assert.Equal(2, attemptsFailed);
        }
Exemplo n.º 7
0
        public void ClientAddHandlersToPipelineChainsEmptyHandler()
        {
            var handlerA = new AppenderDelegatingHandler("A");
            var handlerB = new AppenderDelegatingHandler("B");
            var handlerC = new AppenderDelegatingHandler("C");

            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                handlerA, handlerB, handlerC,
                new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;
            Assert.Equal("Text+A+B+C", response);
        }
        public void RetryHandlerDoesntRetryFor400Errors()
        {
            var fakeClient = new FakeServiceClient(new FakeHttpHandler() { StatusCodeToReturn = HttpStatusCode.Conflict });
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy<DefaultHttpErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.GetHttpPipeline().OfType<RetryHandler>().FirstOrDefault();
            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.Conflict, result.Result.StatusCode);
            Assert.Equal(0, attemptsFailed);
        }
Exemplo n.º 9
0
        public void ClientAddHandlersToPipelineChainsEmptyHandler()
        {
            var handlerA = new AppenderDelegatingHandler("A");
            var handlerB = new AppenderDelegatingHandler("B");
            var handlerC = new AppenderDelegatingHandler("C");

            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                                                   handlerA, handlerB, handlerC,
                                                   new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;

            Assert.Equal("Text+A+B+C", response);
        }
Exemplo n.º 10
0
        public void RetryHandlerRetriesWith500Errors()
        {
            var fakeClient     = new FakeServiceClient(new FakeHttpHandler());
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy <DefaultHttpErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.GetHttpPipeline().OfType <RetryHandler>().FirstOrDefault();

            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.InternalServerError, result.Result.StatusCode);
            Assert.Equal(2, attemptsFailed);
        }
Exemplo n.º 11
0
        public void RetryHandlerDoesntRetryFor400Errors()
        {
            var fakeClient = new FakeServiceClient(new FakeHttpHandler()
            {
                StatusCodeToReturn = HttpStatusCode.Conflict
            });
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy <DefaultHttpErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.GetHttpPipeline().OfType <RetryHandler>().FirstOrDefault();

            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.Conflict, result.Result.StatusCode);
            Assert.Equal(0, attemptsFailed);
        }
Exemplo n.º 12
0
        public void RetryHandlerRetriesWith500ErrorsAndSucceeds()
        {
            var fakeClient = new FakeServiceClient(new FakeHttpHandler()
            {
                NumberOfTimesToFail = 1
            });
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy <HttpStatusCodeErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.HttpMessageHandlers.OfType <RetryDelegatingHandler>().FirstOrDefault();

            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();

            Assert.Equal(HttpStatusCode.OK, result.Result.StatusCode);
            Assert.Equal(1, attemptsFailed);
        }
Exemplo n.º 13
0
        public void ClientAddHandlersToPipelineChainsNestedHandler()
        {
            var handlerA = new AppenderDelegatingHandler("A");
            var handlerB = new AppenderDelegatingHandler("B");
            var handlerC = new AppenderDelegatingHandler("C");

            handlerA.InnerHandler = handlerB;
            handlerB.InnerHandler = handlerC;
            var handlerD = new AppenderDelegatingHandler("D");
            var handlerE = new AppenderDelegatingHandler("E");

            handlerD.InnerHandler = handlerE;
            handlerE.InnerHandler = new MirrorMessageHandler("F");

            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                                                   handlerA, handlerD,
                                                   new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;

            Assert.Equal("Text+A+B+C+D+E", response);
        }
Exemplo n.º 14
0
        public void ClientAddHandlersToPipelineChainsNestedHandler()
        {
            var handlerA = new AppenderDelegatingHandler("A");
            var handlerB = new AppenderDelegatingHandler("B");
            var handlerC = new AppenderDelegatingHandler("C");
            handlerA.InnerHandler = handlerB;
            handlerB.InnerHandler = handlerC;
            var handlerD = new AppenderDelegatingHandler("D");
            var handlerE = new AppenderDelegatingHandler("E");
            handlerD.InnerHandler = handlerE;
            handlerE.InnerHandler = new MirrorMessageHandler("F");

            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                handlerA, handlerD,
                new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;
            Assert.Equal("Text+A+B+C+D+E", response);
        }
Exemplo n.º 15
0
        public void RetryHandlerRetriesWith500ErrorsAndSucceeds()
        {
            var fakeClient = new FakeServiceClient(new FakeHttpHandler() {NumberOfTimesToFail = 1});
            int attemptsFailed = 0;

            fakeClient.SetRetryPolicy(new RetryPolicy<HttpStatusCodeErrorDetectionStrategy>(2));
            var retryHandler = fakeClient.HttpMessageHandlers.OfType<RetryDelegatingHandler>().FirstOrDefault();
            retryHandler.Retrying += (sender, args) => { attemptsFailed++; };

            var result = fakeClient.DoStuff();
            Assert.Equal(HttpStatusCode.OK, result.Result.StatusCode);
            Assert.Equal(1, attemptsFailed);
        }
Exemplo n.º 16
0
        public void ClientWithoutHandlerWorks()
        {
            var fakeClient = new FakeServiceClient(new WebRequestHandler(),
                new MirrorDelegatingHandler());

            var response = fakeClient.DoStuff("Text").Result.Content.ReadAsStringAsync().Result;
            Assert.Equal("Text", response);
        }