コード例 #1
0
        public void MapType_Should_ReturnFormattedExceptionName_UsingDefaultExceptionTypeMapping_WhenDefaultHelpLinkIsNull()
        {
            var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, null);
            var mapper      = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);

            var exception = new DivideByZeroException();
            var result    = mapper.MapType(exception, new DefaultHttpContext());

            result.Should().Be("error:divide-by-zero");
        }
コード例 #2
0
        public void MapType_Should_ReturnTypeAsErrorUri_WhenUseHelpLinkAsProblemDetailsTypeTrueAndDefaultHelpLinkForProblemDetailsTypeNull()
        {
            var options = new HttpExceptionsOptions
            {
                UseHelpLinkAsProblemDetailsType = true
            };
            var optionsMock = new Mock <IOptions <HttpExceptionsOptions> >();

            optionsMock.Setup(o => o.Value).Returns(options);

            var mapper    = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);
            var exception = new ApplicationException();

            var result = mapper.MapType(exception, new DefaultHttpContext());

            result.Should().Be("error:application");
        }
コード例 #3
0
        public void MapType_Should_ReturnUri_UsingOptionsExceptionTypeMappingOverride()
        {
            var uri = new Uri("https://example.com/ExceptionTypeMapping");

            var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, new Uri("http://www.example.com/help-page"));
            var options     = optionsMock.Object;

            options.Value.ExceptionTypeMapping = (Exception ex) =>
            {
                return(uri);
            };
            var mapper = new ExposeProtectedProblemDetailsExceptionMapper(options);

            var result = mapper.MapType(new ApplicationException(), new DefaultHttpContext());

            result.Should().Be(uri.ToString());
        }
コード例 #4
0
        public void MapStatus_Should_ReturnStatus_UsingOptionsExceptionStatusMappingOverride()
        {
            int?status = 9999999;

            var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, new Uri("http://www.example.com/help-page"));
            var options     = optionsMock.Object;

            options.Value.ExceptionStatusMapping = (Exception ex) =>
            {
                return(status);
            };
            var mapper = new ExposeProtectedProblemDetailsExceptionMapper(options);

            var result = mapper.MapStatus(new ApplicationException(), new DefaultHttpContext());

            result.Should().Be(status);
        }
コード例 #5
0
        public void MapType_Should_ReturnDefaultHelpLink_WhenUseHelpLinkAsProblemDetailsTypeTrue()
        {
            var options = new HttpExceptionsOptions
            {
                UseHelpLinkAsProblemDetailsType = true,
                DefaultHelpLink = new Uri("http://www.example.com/help-page")
            };
            var optionsMock = new Mock <IOptions <HttpExceptionsOptions> >();

            optionsMock.Setup(o => o.Value).Returns(options);

            var mapper    = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);
            var exception = new ApplicationException();

            var result = mapper.MapType(exception, new DefaultHttpContext());

            result.Should().Be("http://www.example.com/help-page");
        }
コード例 #6
0
        public void MapType_Should_ReturnExceptionHelpLink_WhenUseHelpLinkAsProblemDetailsTypeTrue()
        {
            var options = new HttpExceptionsOptions
            {
                UseHelpLinkAsProblemDetailsType = true,
                DefaultHelpLink = new Uri("http://www.example.com/help-page")
            };
            var optionsMock = new Mock <IOptions <HttpExceptionsOptions> >();

            optionsMock.Setup(o => o.Value).Returns(options);

            var mapper    = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);
            var helpLink  = "https://docs.microsoft.com/en-us/dotnet/api/system.exception.helplink?view=netcore-2.2";
            var exception = new ApplicationException {
                HelpLink = helpLink
            };

            var result = mapper.MapType(exception, new DefaultHttpContext());

            result.Should().Be(helpLink);
        }
コード例 #7
0
        public ProblemDetailsExceptionMapperTests()
        {
            var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false);

            _mapper = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);
        }
コード例 #8
0
        public ProblemDetailsExceptionMapperTests()
        {
            var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, new Uri("http://www.example.com/help-page"));

            _mapper = new ExposeProtectedProblemDetailsExceptionMapper(optionsMock.Object);
        }