public void Edit_ReturnNotFound_WhenLecturerDoesNotExist() { //Arrange LecturerService lecturerService = Substitute.For <LecturerService>(); LecturerController controller = new LecturerController(lecturerService); //Act IActionResult actual = controller.Edit(0); //Assert var expected = new NotFoundResult(); actual.Should().BeEquivalentTo(expected); }
public void Edit_Get_ReturnsNotFound_WhenNonExistingLecturerId() { // Arrange int nonExistingLecturerId = 0; var lecturerServiceMock = Substitute.For <LecturerService>(); lecturerServiceMock.GetLecturer(nonExistingLecturerId).Returns(default(Lecturer)); var controller = new LecturerController(lecturerServiceMock); // Act var result = controller.Edit(nonExistingLecturerId); // Assert var viewResult = Assert.IsType <NotFoundResult>(result); }
public void Edit_Get_ReturnsViewResult_WithLecturer() { // Arrange int existingLecturerId = 1; var lecturerServiceMock = Substitute.For <LecturerService>(); lecturerServiceMock.GetLecturer(existingLecturerId).Returns(new Lecturer()); var controller = new LecturerController(lecturerServiceMock); // Act var result = controller.Edit(existingLecturerId); // Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsType <Lecturer>(viewResult.Model); }
public void Edit_ReturnsViewResult_WhenModelStateIsInvalid() { //Arrange Lecturer lecturer = new Lecturer { Name = "Test Lecturer" }; LecturerService lecturerService = Substitute.For <LecturerService>(); LecturerController controller = new LecturerController(lecturerService); //Act controller.ModelState.AddModelError("test", "test"); //makes model invalid => if (!ModelState.IsValid) IActionResult actual = controller.Edit(lecturer); //Assert Assert.IsAssignableFrom <ViewResult>(actual); actual.Should().BeAssignableTo <ViewResult>(); }
public void Edit_Post_RedirectToLecturers() { // Arrange Lecturer lecturerForEditing = new Lecturer(); var lecturerSericeMock = Substitute.For <LecturerService>(); lecturerSericeMock.UpdateLecturer(lecturerForEditing).Returns(true); var controller = new LecturerController(lecturerSericeMock); // Act var result = controller.Edit(lecturerForEditing); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal("Lecturers", redirectToActionResult.ActionName); }
public void Edit_RedirectsToLecturers_WhenModelStateIsValid() { //Arrange Lecturer lecturer = new Lecturer { Name = "Test Lecturer" }; LecturerService lecturerService = Substitute.For <LecturerService>(); lecturerService.GetLecturerById(5).Returns(lecturer); LecturerController controller = new LecturerController(lecturerService); //Act var actionResult = controller.Edit(lecturer); lecturerService.Received().UpdateLecturer(lecturer); // Assert actionResult.Should().BeOfType <RedirectToActionResult>().Which.ActionName.Should().Be("Lecturers"); }
public void Edit_ReturnViewResultWithModel_WhenLecturerExists() { //Arrange Lecturer lecturer = new Lecturer { Name = "Test Lecturer" }; LecturerService lecturerService = Substitute.For <LecturerService>(); lecturerService.GetLecturerById(5).Returns(lecturer); LecturerController controller = new LecturerController(lecturerService); //Act IActionResult actual = controller.Edit(5); //Assert actual.Should().BeAssignableTo <ViewResult>(); ViewResult viewResult = (ViewResult)actual; viewResult.Model.Should().BeEquivalentTo(lecturer); }