예제 #1
0
        public async void unhandled_exception___returns_true_and_process_bad_gateway_exception_handler_not_called()
        {
            var context = new ApiRequestContext();

            bool exHandled = false;

            var config = new DefaultApiServiceConfiguration
            {
                OnException = (ctx, ex) => { exHandled = true; throw new Exception("Error"); }
            };

            var exception = new ApiBadGatewayException();

            var processed = await context.ProcessHttpResponseUnhandledException(new ApiRequestContextResolver(), exception, config).ConfigureAwait(false);

            processed.Should().BeTrue();

            context.Response.Should().NotBeNull();
            context.Response.ResponseObject.Should().BeNull();
            context.Response.StatusCode.Should().Be(502);

            context.Validation.Errors.Should().NotBeNull();
            context.Validation.Errors.Should().HaveCount(0);
            exHandled.Should().Be(false);
            context.Runtime.Exceptions.Should().NotBeNull();
            context.Runtime.Exceptions.Should().HaveCount(1);
            context.Runtime.Exceptions[0].Should().Be(exception);
        }
예제 #2
0
        public async void request_processing___returns_true_and_reqest_processed_handler_called_doesnt_fail_if_handler_throws()
        {
            var context = new ApiRequestContext();

            bool reqProcessed = false;

            var config = new DefaultApiServiceConfiguration
            {
                OnRequestProcessed = (ctx) => { reqProcessed = true; throw new Exception("Error"); }
            };


            var processed = await context.ProcessHttpResponseRequestProcessing(new ApiRequestContextResolver(), config).ConfigureAwait(false);

            processed.Should().BeTrue();

            context.Response.Should().NotBeNull();
            context.Response.ResponseObject.Should().BeNull();
            context.Response.StatusCode.Should().Be(200);

            reqProcessed.Should().Be(true);
        }
예제 #3
0
        public async void request_processing___returns_true_and_reqest_processed_null_handler_not_called()
        {
            var context = new ApiRequestContext();

            bool reqProcessed = false;

            var config = new DefaultApiServiceConfiguration
            {
                OnRequestProcessed = null
            };


            var processed = await context.ProcessHttpResponseRequestProcessing(new ApiRequestContextResolver(), config).ConfigureAwait(false);

            processed.Should().BeTrue();

            context.Response.Should().NotBeNull();
            context.Response.ResponseObject.Should().BeNull();
            context.Response.StatusCode.Should().Be(200);

            reqProcessed.Should().Be(false);
        }