public Task ApiControllerBase_InvokesOnControllerExecuted()
        {
            //Arrange
            var fakeController    = new FakeOKController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeOk", typeof(FakeOKController));

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

                   //Assert
                   .ContinueWith(task => {
                Assert.True(fakeController.OnControllerExecutedInvoked);
            }));
        }
        public Task ApiControllerBase_InvokesActionIfOnControllerExecutingDoesNotTerminate()
        {
            //Arrange
            var fakeController    = new FakeOKController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeOk", typeof(FakeOKController));

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

                   //Assert
                   .ContinueWith(task => {
                Assert.Equal(HttpStatusCode.OK, task.Result.StatusCode);
                Assert.Equal("Hello World", ((StringContent)task.Result.Content).ReadAsStringAsync().Result);
            }));
        }
        public Task ApiControllerBase_InvokesActionIfOnControllerExecutingDoesNotTerminate()
        {
            //Arrange
            var fakeController = new FakeOKController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeOk", typeof(FakeOKController));

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

            //Assert
                .ContinueWith(task => {
                    Assert.Equal(HttpStatusCode.OK, task.Result.StatusCode);
                    Assert.Equal("Hello World", ((StringContent)task.Result.Content).ReadAsStringAsync().Result);
                });
        }
        public Task ApiControllerBase_InvokesOnControllerExecuted()
        {
            //Arrange
            var fakeController = new FakeOKController();
            var controllerContext = ContextUtil.CreateControllerContext(fakeController, "FakeOk", typeof(FakeOKController));

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

            //Assert
                .ContinueWith(task => {
                    Assert.True(fakeController.OnControllerExecutedInvoked);
                });
        }