Beispiel #1
0
        when_ArgumentOutOfRangeException_raised_but_config_is_set_to_argument_it_should_raise_exception_again()
        {
            const string fieldName = "ArgumentOutOfRange";
            const string error     = "NameValidationException";


            var badRequestController = new BadRequestController();

            var modelState = new ModelStateDictionary();

            modelState.AddModelError(fieldName,
                                     error);
            var result = badRequestController.GetBadRequestWithModelState(modelState);

            var config = new WebApiErrorHandlingConfig();

            config.CatchArgumentException();
            var middleware =
                TestHelper.BuildWebApiErrorHandlingMiddleware(innerHttpContext =>
                                                              throw new ArgumentOutOfRangeException(
                                                                  fieldName,
                                                                  error),
                                                              config);
            var context = new DefaultHttpContext();

            context.Response.Body = new MemoryStream();
            Func <Task> act = async() => { await middleware.Invoke(context); };
            await act.Should().ThrowAsync <ArgumentOutOfRangeException>();
        }
        when_WebApiBadRequestException_with_message_raised_it_should_return_BadRequest_http_status_code2()
        {
            var exception = new ValidationExceptionWithErrorMessage();


            var badRequestController = new BadRequestController();


            var result = badRequestController.GetBadRequestWithError(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.BadRequest,
                         context.Response.StatusCode.AsEnum <HttpStatusCode>());

            Assert.True(JToken.DeepEquals(actual,
                                          expected));
        }
Beispiel #3
0
        public async Task when_ArgumentNullException_raised_it_should_BadRequest_http_status_code()
        {
            const string fieldName = "ArgumentNull";
            const string error     = "NameValidationException";


            var badRequestController = new BadRequestController();

            var modelState = new ModelStateDictionary();

            modelState.AddModelError(fieldName,
                                     error);
            var result = badRequestController.GetBadRequestWithModelState(modelState);

            var config = new WebApiErrorHandlingConfig();


            config.CatchArgumentNullException();


            var middleware =
                TestHelper.BuildWebApiErrorHandlingMiddleware(innerHttpContext =>
                                                              throw new ArgumentNullException(fieldName,
                                                                                              error),
                                                              config);
            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.BadRequest,
                         context.Response.StatusCode.AsEnum <HttpStatusCode>());

            Assert.True(JToken.DeepEquals(actual,
                                          expected));
        }