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); }
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); }
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); }