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));
        }
示例#2
0
        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));
        }