public void HttpResponseMapper_Should_Add2HttpResponseMappers() { var options = new HttpExceptionsOptions(); options.HttpResponseMapper <TestProblemDetailsHttpResponseMapper>(500); options.HttpResponseMapper <ProblemDetailsHttpResponseMapper>(); options.HttpResponseMapperDescriptors.Should().HaveCount(2); }
public void ExceptionMapper_Should_Add2ExceptionMappers() { var options = new HttpExceptionsOptions(); options.ExceptionMapper <Exception, ProblemDetailsExceptionMapper <Exception> >(); options.ExceptionMapper <HttpException, ProblemDetailsExceptionMapper <HttpException> >(); options.ExceptionMapperDescriptors.Should().HaveCount(2); }
public void TryMap_Should_ReturnFalse_WhenMappingNotConfiguredException() { var options = new HttpExceptionsOptions(); options.ExceptionMappers.Add(new ProblemDetailsExceptionMapper <HttpException>(_httpExceptionsOptionsMock.Object)); var result = options.TryMap(new ArgumentException(), new DefaultHttpContext(), out _); result.Should().BeFalse(); }
public void HttpResponseMapper_Should_OverrideHttpResponseMapper() { var options = new HttpExceptionsOptions(); options.HttpResponseMapper <ProblemDetailsHttpResponseMapper>(500); options.HttpResponseMapper <TestProblemDetailsHttpResponseMapper>(500); options.HttpResponseMapperDescriptors.Should().HaveCount(1); options.HttpResponseMapperDescriptors.First().Value.Type.Should().Be <TestProblemDetailsHttpResponseMapper>(); }
public void ExceptionMapper_Should_OverrideExceptionMapper() { var options = new HttpExceptionsOptions(); options.ExceptionMapper <Exception, ProblemDetailsExceptionMapper <Exception> >(); options.ExceptionMapper <Exception, TestProblemDetailsExceptionMapper>(); options.ExceptionMapperDescriptors.Should().HaveCount(1); options.ExceptionMapperDescriptors.First().Value.Type.Should().Be <TestProblemDetailsExceptionMapper>(); }
public void TryMap_Should_ReturnFalse_WhenMappingNotConfiguredHttpResponse() { var options = new HttpExceptionsOptions(); options.HttpResponseMappers.Add(new ProblemDetailsHttpResponseMapper(_httpExceptionsOptionsMock.Object) { Status = 148 }); var result = options.TryMap(_internalServerErrorHttpContext.Response, out _); result.Should().BeFalse(); }
/// <summary> /// Add an HttpResponseMapper for the specified status code. HttpResponseMappers handle unauthorized and other non-exceptions responses. /// </summary> /// <typeparam name="THttpResponseMapper">A type that derives from IHttpResponseMapper.</typeparam> /// <param name="options">The HttpExceptionsOptions.</param> /// <param name="status">The status code that is handled by the IHttpResponseMapper.</param> /// <param name="arguments">Optionally inject parameters through HttpResponseMapper constructors.</param> public static void HttpResponseMapper <THttpResponseMapper>(this HttpExceptionsOptions options, int status = int.MinValue, params object[] arguments) where THttpResponseMapper : IHttpResponseMapper { if (options.HttpResponseMapperDescriptors.ContainsKey(status)) { options.HttpResponseMapperDescriptors[status] = new HttpResponseMapperDescriptor { Type = typeof(THttpResponseMapper), Arguments = arguments }; return; } options.HttpResponseMapperDescriptors.Add(status, new HttpResponseMapperDescriptor { Type = typeof(THttpResponseMapper), Arguments = arguments }); }
/// <summary> /// Add an ExceptionMapper for the specified exception type. /// </summary> /// <typeparam name="TException">The exception type that is handled by the IExceptionMapper.</typeparam> /// <typeparam name="TExceptionMapper">A type that derives from IExceptionMapper.</typeparam> /// <param name="options">The HttpExceptionsOptions.</param> /// <param name="arguments">Optionally inject parameters through ExceptionMapper constructors.</param> public static void ExceptionMapper <TException, TExceptionMapper>(this HttpExceptionsOptions options, params object[] arguments) where TException : Exception where TExceptionMapper : IExceptionMapper { if (options.ExceptionMapperDescriptors.ContainsKey(typeof(TException))) { options.ExceptionMapperDescriptors[typeof(TException)] = new ExceptionMapperDescriptor { Type = typeof(TExceptionMapper), Arguments = arguments }; return; } options.ExceptionMapperDescriptors.Add(typeof(TException), new ExceptionMapperDescriptor { Type = typeof(TExceptionMapper), Arguments = arguments }); }