public ProblemDetailsHttpResponseMapperTests() { var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false); _mapper = new ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); _unauthorizedHttpContext = new DefaultHttpContext(); _unauthorizedHttpContext.Request.Path = "/api/test/unauthorized"; _unauthorizedHttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized; }
public void MapType_Should_ReturnFormattedStatusCode_UsingDefaultHttpContextTypeMapping_WhenUnknownHttpStatusCodeAndDefaultHelpLinkNull() { var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, null); var mapper = new ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); var teapotHttpContext = new DefaultHttpContext(); teapotHttpContext.Request.Path = "/api/test/i-am-a-teapot"; teapotHttpContext.Response.StatusCode = 418; var result = mapper.MapType(teapotHttpContext.Response); result.Should().Be("error:418"); }
public void MapType_Should_ReturnFormattedStatusName_UsingDefaultHttpContextTypeMapping_WhenUnknownHttpStatusCodeAndDefaultHelpLinkNull() { var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, null); var mapper = new ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); var alreadyReportedHttpContext = new DefaultHttpContext(); alreadyReportedHttpContext.Request.Path = "/api/test/already-reported"; alreadyReportedHttpContext.Response.StatusCode = (int)HttpStatusCode.AlreadyReported; var result = mapper.MapType(alreadyReportedHttpContext.Response); result.Should().Be("error:already-reported"); }
public void MapDetail_Should_ReturnDetail_UsingOptionsHttpContextDetailMappingOverride() { var detail = "HttpContextDetailMapping"; var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, new Uri("http://www.example.com/help-page")); var options = optionsMock.Object; options.Value.HttpContextDetailMapping = (HttpContext context) => { return(detail); }; var mapper = new ExposeProtectedProblemDetailsHttpResponseMapper(options); var result = mapper.MapDetail(new DefaultHttpContext().Response); result.Should().Be(detail); }
public void MapType_Should_ReturnUri_UsingOptionsHttpContextTypeMappingOverride() { var uri = new Uri("https://example.com/HttpContextTypeMapping"); var optionsMock = TestHelper.CreateHttpExceptionsOptionsMock(false, new Uri("http://www.example.com/help-page")); var options = optionsMock.Object; options.Value.HttpContextTypeMapping = (HttpContext context) => { return(uri); }; var mapper = new ExposeProtectedProblemDetailsHttpResponseMapper(options); var result = mapper.MapType(new DefaultHttpContext().Response); result.Should().Be(uri.ToString()); }
public void MapType_Should_ReturnResponseStatusCodeLinkUnauthorized_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 ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); var result = mapper.MapType(_unauthorizedHttpContext.Response); result.Should().Be(ResponseStatusCodeLink.Unauthorized); }
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 ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); var teapotHttpContext = new DefaultHttpContext(); teapotHttpContext.Request.Path = "/api/test/i-am-a-teapot"; teapotHttpContext.Response.StatusCode = 418; var result = mapper.MapType(teapotHttpContext.Response); result.Should().Be("error:418"); }
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 ExposeProtectedProblemDetailsHttpResponseMapper(optionsMock.Object); var teapotHttpContext = new DefaultHttpContext(); teapotHttpContext.Request.Path = "/api/test/i-am-a-teapot"; teapotHttpContext.Response.StatusCode = 418; var result = mapper.MapType(teapotHttpContext.Response); result.Should().Be("http://www.example.com/help-page"); }