public async Task Redirect_ToViewResult_IfModelInvalid_OnPost() { // Arrange string movieName = "Spiderman"; string actorName = "John John"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieManageActorsModel = new Mock <MovieManageActorsViewModel>(); movieManageActorsModel.Object.MovieName = movieName; movieManageActorsModel.Object.ActorName = actorName; var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.ManageActorAsync(movieName, actorName)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); sut.ModelState.AddModelError("error", "error"); // Act var result = await sut.ManageActors(movieManageActorsModel.Object); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResultRedirect = (ViewResult)result; Assert.IsInstanceOfType(viewResultRedirect.Model, typeof(MovieManageActorsViewModel)); }
public async Task Call_MovieServiceWithCorrectParams_OnPost() { // Arrange string movieName = "Spiderman"; string actorName = "John John"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieManageActorsModel = new Mock <MovieManageActorsViewModel>(); movieManageActorsModel.Object.MovieName = movieName; movieManageActorsModel.Object.ActorName = actorName; var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.ManageActorAsync(movieName, actorName)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.ManageActors(movieManageActorsModel.Object); // Assert movieServiceMock.Verify(x => x.ManageActorAsync(movieName, actorName), Times.Once); }
public async Task RedirectToCorrectAction_OnPost() { // Arrange string movieName = "Spiderman"; string actorName = "John John"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieManageActorsModel = new Mock <MovieManageActorsViewModel>(); movieManageActorsModel.Object.MovieName = movieName; movieManageActorsModel.Object.ActorName = actorName; var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.ManageActorAsync(movieName, actorName)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.ManageActors(movieManageActorsModel.Object); // Assert Assert.IsInstanceOfType(result, typeof(RedirectToActionResult)); var redirect = (RedirectToActionResult)result; // They are redirecting to the basic Movie Controller, not the MovieManagement one. Assert.IsTrue(redirect.ControllerName == "Movie"); Assert.IsTrue(redirect.ActionName == "Details"); }
public void ReturnCorrectViewModel_OnGet() { // Arrange string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = sut.ManageActors(movieName) as ViewResult; // Assert Assert.IsInstanceOfType(result.Model, typeof(MovieManageActorsViewModel)); }