Beispiel #1
0
        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");
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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));
        }
Beispiel #9
0
        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));
        }
Beispiel #11
0
        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));
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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");
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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));
        }