Exemplo n.º 1
0
        public void ShouldReturnGenericErrorWhenInProduction(Exception exception)
        {
            // Arrange
            var environment = A.Fake <IHostingEnvironment>(opts =>
            {
                opts.ConfigureFake(env => env.EnvironmentName = "Production");
            });

            var filter        = new ExceptionFilter(environment);
            var filterContext = FilterContextProvider.GetExceptionContext(exception);

            // Act
            filter.OnException(filterContext);

            // Assert
            filterContext.HttpContext.Response.StatusCode.ShouldBe((int)HttpStatusCode.InternalServerError);

            var result = filterContext.Result as JsonResult;

            result.ShouldNotBeNull();
            result.Value.ShouldBeOfType <Error>();

            var error = (Error)result.Value;

            error.Type.ShouldBe(ErrorType.Critical);
            error.Messages.ShouldNotBeEmpty();
        }
Exemplo n.º 2
0
        public void ShouldReturnBadRequestWhenThereAreModelStateErrors(Dictionary <string, string> errors)
        {
            // Arrange
            var context = FilterContextProvider.GetActionExecutingContext("POST");

            foreach (var e in errors)
            {
                context.ModelState.AddModelError(e.Key, e.Value);
            }

            var filter = new ModelStateFilter();

            // Act
            filter.OnActionExecuting(context);

            // Assert
            var result = context.Result.ShouldBeOfType <BadRequestObjectResult>();
            var error  = result.Value.ShouldBeOfType <Error>();

            var expectedErrorMessages = errors
                                        .Select(e => e.Value)
                                        .ToArray();

            error.Messages.ShouldAllBe(e => expectedErrorMessages.Contains(e));
        }
Exemplo n.º 3
0
        public void ShouldDoNothingWhenThereAreNoModelStateErrors()
        {
            // Arrange
            var context = FilterContextProvider.GetActionExecutingContext("POST");

            // Purposefully not adding any errors
            var filter = new ModelStateFilter();

            // Act
            filter.OnActionExecuting(context);

            // Assert
            context.Result.ShouldNotBeOfType <BadRequestObjectResult>();
        }
Exemplo n.º 4
0
        public void ShouldReturnSerializedExceptionWhenInDevelopment(Exception exception)
        {
            // Arrange
            var environmentMock = new Mock <IHostingEnvironment>();

            environmentMock
            .Setup(e => e.EnvironmentName)
            .Returns("Development");

            var filter        = new ExceptionFilter(environmentMock.Object);
            var filterContext = FilterContextProvider.GetExceptionContext(exception);

            // Act
            filter.OnException(filterContext);

            // Assert
            filterContext.HttpContext.Response.StatusCode.ShouldBe((int)HttpStatusCode.InternalServerError);

            var result = filterContext.Result as JsonResult;

            result.ShouldNotBeNull();
            result.Value.ShouldBeOfType <Exception>();
            ((Exception)result.Value).Message.ShouldBe(exception.Message);
        }