when_WebApiConflictException_with_message_raised_it_should_return_Conflict_http_status_code2() { var exception = new EntityWithErrorMessageException(); var conflictController = new ConflictController(); var result = conflictController.GetConflictWithError(exception.Message); var middleware = TestHelper.BuildWebApiErrorHandlingMiddleware(innerHttpContext => throw exception); var context = new DefaultHttpContext(); context.Response.Body = new MemoryStream(); await middleware.Invoke(context); context.Response.Body.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(context.Response.Body); var streamText = reader.ReadToEnd(); var expected = JToken.Parse(result.SerializeToJson()); var actual = JToken.Parse(streamText); Assert.Equal(HttpStatusCode.Conflict, context.Response.StatusCode.AsEnum <HttpStatusCode>()); Assert.True(JToken.DeepEquals(actual, expected)); }
public async Task when_exception_without_webapi_attribute_raised_it_should_rethrow() { var conflictController = new ConflictController(); var result = conflictController.GetConflict(); var middleware = TestHelper.BuildWebApiErrorHandlingMiddleware(innerHttpContext => throw new ArgumentException()); var context = new DefaultHttpContext(); context.Response.Body = new MemoryStream(); async Task Act() { await middleware.Invoke(context); } await Assert.ThrowsAsync <ArgumentException>(Act); }
when_WebApiConflictException_with_ModelState_raised_it_should_return_Conflict_http_status_code() { const int errorCode = -1; const string error = "EntityNotFound"; var conflictController = new ConflictController(); var modelState = new ModelStateDictionary(); modelState.AddModelError(errorCode.ToString(), error); var result = conflictController.GetConflictWithModelState(modelState); var middleware = TestHelper.BuildWebApiErrorHandlingMiddleware(innerHttpContext => throw new EntityNotFoundExceptionWithMessage()); var context = new DefaultHttpContext(); context.Response.Body = new MemoryStream(); await middleware.Invoke(context); context.Response.Body.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(context.Response.Body); var streamText = reader.ReadToEnd(); var expected = JToken.Parse(result.SerializeToJson()); var actual = JToken.Parse(streamText); Assert.Equal(HttpStatusCode.Conflict, context.Response.StatusCode.AsEnum <HttpStatusCode>()); Assert.True(JToken.DeepEquals(actual, expected)); }