Esempio n. 1
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");
        }
Esempio n. 2
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);
        }
Esempio n. 3
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));
        }
Esempio n. 4
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);
        }
Esempio n. 5
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));
        }