public void Edit_ReturnNotFound_WhenHomeTaskDoesNotExist()
        {
            //Arrange
            HomeTaskService    homeTaskService = Substitute.For <HomeTaskService>();
            HomeTaskController controller      = new HomeTaskController(homeTaskService, null);

            //Act
            IActionResult actual = controller.Edit(0);

            //Assert
            var expected = new NotFoundResult();

            actual.Should().BeEquivalentTo(expected);
        }
        public void Edit_ReturnsViewResult_WhenModelStateIsInvalid()
        {
            //Arrange
            HomeTask homeTask = new HomeTask {
                Title = "Test Home Task"
            };
            HomeTaskService    homeTaskService = Substitute.For <HomeTaskService>();
            HomeTaskController controller      = new HomeTaskController(homeTaskService, null);

            //Act
            controller.ModelState.AddModelError("test", "test");  //makes model invalid => if (!ModelState.IsValid)
            IActionResult actual = controller.Edit(homeTask);

            //Assert
            Assert.IsAssignableFrom <ViewResult>(actual);
            actual.Should().BeAssignableTo <ViewResult>();
        }
        public void Edit_ReturnViewResultWithModel_WhenHomeTaskExists()
        {
            //Arrange
            HomeTask homeTask = new HomeTask {
                Title = "Test Home Task"
            };
            HomeTaskService homeTaskService = Substitute.For <HomeTaskService>();

            homeTaskService.GetHomeTaskById(5).Returns(homeTask);
            HomeTaskController controller = new HomeTaskController(homeTaskService, null);

            //Act
            IActionResult actual = controller.Edit(5);

            //Assert
            actual.Should().BeAssignableTo <ViewResult>();
            ViewResult viewResult = (ViewResult)actual;

            viewResult.Model.Should().BeEquivalentTo(homeTask);
        }