public void CreatePost_SaveThroughRepository_WhenModelStateIsValid() { // Arrange var mockRepo = new Mock <IRaceRepository>(); mockRepo.Setup(repo => repo.Save(It.IsAny <Race>())) //.Returns(Task.CompletedTask) .Verifiable(); var controller = new RaceController(mockRepo.Object); Race r = new Race() { Name = "Human", Description = "Don't listen to scientists" }; // Act var result = controller.Create(r); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal("Index", redirectToActionResult.ActionName); mockRepo.Verify(); }
public void CreatePost_ReturnsViewWithRace_WhenModelStateIsInvalid() { // Arrange var mockRepo = new Mock <IRaceRepository>(); var controller = new RaceController(mockRepo.Object); controller.ModelState.AddModelError("Name", "Required"); var race = new Race() { Name = "", Description = "Karl Karlson something nice" }; // Act var result = controller.Create(race); // Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsAssignableFrom <Race>(viewResult.ViewData.Model); Assert.IsType <Race>(model); }