public void OnActionExecuted_HandlesExceptionAndReturnsObjectResult()
        {
            // Arrange
            var filter = new HttpResponseExceptionActionFilter();
            var httpContext = new DefaultHttpContext();
            httpContext.Request.Method = "GET";

            var actionContext = new ActionContext(
                                httpContext,
                                new RouteData(),
                                Mock.Of<ActionDescriptor>());

            var context = new ActionExecutedContext(
                actionContext,
                filters: new List<IFilter>(),
                controller: new object());

            context.Exception = new HttpResponseException(HttpStatusCode.BadRequest);

            // Act
            filter.OnActionExecuted(context);

            // Assert
            Assert.True(context.ExceptionHandled);
            var result = Assert.IsType<ObjectResult>(context.Result);
            Assert.Equal(typeof(HttpResponseMessage), result.DeclaredType);
            var response = Assert.IsType<HttpResponseMessage>(result.Value);
            Assert.NotNull(response.RequestMessage);
            Assert.Equal(context.HttpContext.GetHttpRequestMessage(), response.RequestMessage);
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
Пример #2
0
        public void OnActionExecuted_HandlesExceptionAndReturnsObjectResult()
        {
            // Arrange
            var filter      = new HttpResponseExceptionActionFilter();
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method = "GET";

            var actionContext = new ActionContext(
                httpContext,
                new RouteData(),
                Mock.Of <ActionDescriptor>());

            var context = new ActionExecutedContext(
                actionContext,
                filters: new List <IFilterMetadata>(),
                controller: new object());

            context.Exception = new HttpResponseException(HttpStatusCode.BadRequest);

            // Act
            filter.OnActionExecuted(context);

            // Assert
            Assert.True(context.ExceptionHandled);
            var result = Assert.IsType <ObjectResult>(context.Result);

            Assert.Equal(typeof(HttpResponseMessage), result.DeclaredType);
            var response = Assert.IsType <HttpResponseMessage>(result.Value);

            Assert.NotNull(response.RequestMessage);
            Assert.Equal(context.HttpContext.GetHttpRequestMessage(), response.RequestMessage);
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public void OrderIsSetToMaxValue()
        {
            // Arrange
            var filter = new HttpResponseExceptionActionFilter();
            var expectedFilterOrder = int.MaxValue - 10;

            // Act & Assert
            Assert.Equal(expectedFilterOrder, filter.Order);
        }
Пример #4
0
        public void OrderIsSetToMaxValue()
        {
            // Arrange
            var filter = new HttpResponseExceptionActionFilter();
            var expectedFilterOrder = int.MaxValue - 10;

            // Act & Assert
            Assert.Equal(expectedFilterOrder, filter.Order);
        }
        public void OnActionExecuting_IsNoOp()
        {
            // Arrange
            var filter  = new HttpResponseExceptionActionFilter();
            var context = new ActionExecutingContext(new ActionContext(
                                                         new DefaultHttpContext(),
                                                         new RouteData(),
                                                         actionDescriptor: Mock.Of <ActionDescriptor>()),
                                                     filters: Mock.Of <IList <IFilter> >(),
                                                     actionArguments: new Dictionary <string, object>());

            // Act
            filter.OnActionExecuting(context);

            // Assert
            Assert.Null(context.Result);
        }
        public void OnActionExecuting_IsNoOp()
        {
            // Arrange
            var filter = new HttpResponseExceptionActionFilter();

            var actionContext = new ActionContext(
                                new DefaultHttpContext(),
                                new RouteData(),
                                Mock.Of<ActionDescriptor>());

            var context = new ActionExecutingContext(
                actionContext,
                filters: new List<IFilter>(),
                actionArguments: new Dictionary<string, object>(),
                controller: new object());

            // Act
            filter.OnActionExecuting(context);

            // Assert
            Assert.Null(context.Result);
        }