public async Task ProjectController_DeleteAction_ShouldCallServiceAndRedirect()
        {
            var result = await controller.DeleteAsync(1);

            projectsMock.Verify(p => p.DeleteProjectAsync(1), Times.Once);

            AssertRedirectToAction(result);
            AssertNotificationMessage(ProjectsService.Message_Success_ProjectDeleted);
        }
        public async Task TestDeleteAsync_WhenIsProjectValidToCloseReturnExceptionVerifyServiceReturnInternalServerError()
        {
            var mockManageProject = new Mock <IManageProject>();
            var projectController = new ProjectsController(mockManageProject.Object, fixture.projectControllerLogger);
            var project           = new Project()
            {
                ProjectId = 1001, ProjectName = "Project 1", Priority = 10, ActiveStatus = false
            };

            mockManageProject.Setup(manage => manage.GetProjectAsync(1001)).Returns(Task.FromResult(project));
            mockManageProject.Setup(manage => manage.IsProjectValidToClose(project)).Throws(new Exception());
            var statusResult = await projectController.DeleteAsync(1001);

            Assert.Equal((int)HttpStatusCode.InternalServerError, (statusResult as ObjectResult).StatusCode);
        }
        public async Task TestDeleteAsync_WhenIsProjectValidToCloseReturnFalseVerifyServiceReturnOkStatus()
        {
            var mockManageProject = new Mock <IManageProject>();
            var projectController = new ProjectsController(mockManageProject.Object, fixture.projectControllerLogger);
            var project           = new Project()
            {
                ProjectId = 1001, ProjectName = "Project 1", Priority = 10, ActiveStatus = false
            };

            mockManageProject.Setup(manage => manage.GetProjectAsync(1001)).Returns(Task.FromResult(project));
            mockManageProject.Setup(manage => manage.IsProjectValidToClose(project)).Returns(false);
            var statusResult = await projectController.DeleteAsync(1001);

            Assert.NotNull(statusResult as BadRequestObjectResult);
        }