public async Task ExceptionResult_WritesHttpError() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.RequestServices = CreateServices(); var stream = new MemoryStream(); httpContext.Response.Body = stream; var context = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var result = new ExceptionResult(new Exception("hello, world!"), includeErrorDetail: false); // Act await result.ExecuteResultAsync(context); // Assert using (var reader = new StreamReader(stream)) { stream.Seek(0, SeekOrigin.Begin); var content = reader.ReadToEnd(); Assert.Equal("{\"Message\":\"An error has occurred.\"}", content); } }
public async Task ExceptionResult_SetsStatusCode() { // Arrange var httpContext = new DefaultHttpContext(); httpContext.RequestServices = CreateServices(); var stream = new MemoryStream(); httpContext.Response.Body = stream; var context = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); var result = new ExceptionResult(new Exception("hello, world!"), includeErrorDetail: false); // Act await result.ExecuteResultAsync(context); // Assert Assert.Equal(StatusCodes.Status500InternalServerError, context.HttpContext.Response.StatusCode); }