public Task ApiControllerBase_DoesNotInvokeActionIfOnControllerExecutingTerminates()
        {
            //Arrange
            var fakeController    = new FakeTerminatedController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeTerminated", typeof(FakeTerminatedController));

            //Act
            return(fakeController.ExecuteAsync(controllerContext, CancellationToken.None)

                   //Assert
                   .ContinueWith(task => {
                Assert.True(fakeController.OnControllerExecutingInvoked);
                Assert.True(fakeController.OnControllerExecutedInvoked);
                Assert.False(fakeController.IsActionInvoked);
                Assert.Equal(HttpStatusCode.NotAcceptable, task.Result.StatusCode);
            }));
        }
        public Task ApiControllerBase_DoesNotInvokeActionIfOnControllerExecutingTerminates()
        {
            //Arrange
            var fakeController = new FakeTerminatedController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeTerminated", typeof(FakeTerminatedController));

            //Act
            return fakeController.ExecuteAsync(controllerContext, CancellationToken.None)

            //Assert
                .ContinueWith(task => {
                    Assert.True(fakeController.OnControllerExecutingInvoked);
                    Assert.True(fakeController.OnControllerExecutedInvoked);
                    Assert.False(fakeController.IsActionInvoked);
                    Assert.Equal(HttpStatusCode.NotAcceptable, task.Result.StatusCode);
                });
        }