public async Task RedirectToCorrectAction_OnPost() { // Arrange string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.GetMovieByNameAsync(movieName)) .ReturnsAsync(movieViewModel); movieServiceMock .Setup(g => g.UpdateMovieAsync(movieName, movieViewModel)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Edit(movieName, movieViewModel); // 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 async Task Redirect_ToViewResult_IfModelInvalid_OnPost() { // Arrange string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.GetMovieByNameAsync(movieName)) .ReturnsAsync(movieViewModel); movieServiceMock .Setup(g => g.UpdateMovieAsync(movieName, movieViewModel)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); sut.ModelState.AddModelError("error", "error"); // Act var result = await sut.Edit(movieName, movieViewModel); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResultRedirect = (ViewResult)result; Assert.IsInstanceOfType(viewResultRedirect.Model, typeof(MovieViewModel)); }
public async Task Call_MovieServiceWithCorrectParams_OnPost() { // Arrange string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); var movieViewModel = new MovieViewModel(); movieServiceMock .Setup(g => g.GetMovieByNameAsync(movieName)) .ReturnsAsync(movieViewModel); movieServiceMock .Setup(g => g.UpdateMovieAsync(movieName, movieViewModel)) .ReturnsAsync(movieViewModel); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Edit(movieName, movieViewModel); // Assert movieServiceMock.Verify(x => x.UpdateMovieAsync(movieName, movieViewModel), Times.Once); }
public async Task RedirectToCorrectAction_OnPost() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); movieServiceMock.Setup(msm => msm.CreateMovieAsync(null, 0, null, null, null, null)) .ReturnsAsync(new MovieViewModel()); var createModel = new MovieCreateViewModel(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Create(createModel); // 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 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); }
[TestMethod] // OK! public void ReturnCorrectViewModel_OnGet() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = sut.Delete() as ViewResult; // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); }
[TestMethod] // OK! public async Task Call_MovieServiceOnce_OnPost() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); string movieName = "Spiderman"; // Act var result = await sut.Delete(movieName); // Assert movieServiceMock.Verify(x => x.DeleteMovieAsync(movieName)); }
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)); }
public async Task Call_MovieServiceWithCorrectParams_OnPost() { // Arrange string movieName = "Titanic"; int duration = 90; string director = "TestDirector"; string storyline = "TestStoryline"; string imageUrl = "TestImageUrl"; string genreName = "TestGenre"; var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var model = new MovieViewModel() { Name = movieName, Duration = duration, Director = director, Storyline = storyline, ImageUrl = imageUrl, Genre = genreName }; movieServiceMock.Setup(msm => msm.CreateMovieAsync(movieName, duration, storyline, director, imageUrl, genreName)) .ReturnsAsync(model); var createModel = new MovieCreateViewModel() { Name = movieName, Duration = duration, Director = director, Storyline = storyline, ImageUrl = imageUrl, GenreName = genreName }; var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Create(createModel); // Assert movieServiceMock.Verify(x => x.CreateMovieAsync(movieName, duration, storyline, director, imageUrl, genreName), Times.Once); }
[TestMethod] // OK! public async Task Redirect_ToViewResult_IfModelInvalid_OnPost() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); sut.ModelState.AddModelError("error", "error"); string movieName = "Spiderman"; // Act var result = await sut.Delete(movieName); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public async Task ReturnCorrectViewModel_OnGet() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); genreServiceMock .Setup(g => g.GetAllGenres()) .ReturnsAsync(new List <Genre>()); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Create() as ViewResult; // Assert Assert.IsInstanceOfType(result.Model, typeof(MovieCreateViewModel)); }
public async Task CallGenreServiceOnce_OnGet() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); genreServiceMock .Setup(g => g.GetAllGenres()) .ReturnsAsync(new List <Genre>()); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act await sut.Create(); // Assert genreServiceMock.Verify(g => g.GetAllGenres(), Times.Once); }
public async Task ReturnCorrectViewModel_OnGet() { // Arrange string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); var movieServiceMock = new Mock <IMovieService>(); movieServiceMock .Setup(g => g.GetMovieByNameAsync(movieName)) .ReturnsAsync(new MovieViewModel()); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Edit(movieName) as ViewResult; // Assert Assert.IsInstanceOfType(result.Model, typeof(MovieViewModel)); }
[TestMethod] // OK! public async Task Redirect_ToCorrectAction_OnPost() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); string movieName = "Spiderman"; // Act var result = await sut.Delete(movieName); // 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 == "TopRated"); }
public async Task CallMovieServiceOnce_OnGet() { // Arrange var movieServiceMock = new Mock <IMovieService>(); string movieName = "Spiderman"; var genreServiceMock = new Mock <IGenreService>(); movieServiceMock .Setup(g => g.GetMovieByNameAsync(movieName)) .ReturnsAsync(new MovieViewModel()); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); // Act var result = await sut.Edit(movieName); // Assert movieServiceMock.Verify(m => m.GetMovieByNameAsync(movieName), Times.Once); }
public async Task Redirect_ToViewResult_IfModelInvalid_OnPost() { // Arrange var movieServiceMock = new Mock <IMovieService>(); var genreServiceMock = new Mock <IGenreService>(); var createModel = new MovieCreateViewModel(); var sut = new MovieManagementController(movieServiceMock.Object, genreServiceMock.Object); sut.ModelState.AddModelError("error", "error"); // Act var result = await sut.Create(createModel); // Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); var viewResultRedirect = (ViewResult)result; Assert.IsInstanceOfType(viewResultRedirect.Model, typeof(MovieCreateViewModel)); }