Example #1
0
        public ActionResult Details(int id)
        {
            Movie movie = _movies.GetMovie(id);

            if (movie == null)
            {
                return(HttpNotFound());
            }

            return(View(movie));
        }
Example #2
0
        public IHttpActionResult GetMovie(int id)
        {
            var movie = _movies.GetMovie(id);

            if (movie == null)
            {
                return(NotFound());
            }

            return(Ok(Mapper.Map <Movie, MovieDto>(movie)));
        }
Example #3
0
        public async Task <IActionResult> Details(string movieUrl, int score)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            RatingRepository.Add(new DTO.Rating
            {
                Id       = Guid.NewGuid(),
                MovieUrl = movieUrl,
                Score    = score
            });
            await RatingRepository.SaveChanges();

            var movie = await MoviesService.GetMovie(movieUrl);

            var ratings = await RatingRepository.GetAll(movieUrl);

            var viewModel = new MovieViewModel
            {
                Title        = movie.Title,
                OpeningCrawl = movie.OpeningCrawl,
                Scores       = ratings.Select(r => r.Score)
            };

            return(View(viewModel));
        }
Example #4
0
            public async Task ReturnsViewWithMovieViewModel()
            {
                //Arrange
                const string movieUrl     = "https://test.test/api/film/1";
                const string title        = "Test movie title";
                const string openingCrawl = "lorem ipsum";
                var          scores       = new[] { 7, 4 };

                var movie = new Movie
                {
                    Url          = movieUrl,
                    OpeningCrawl = openingCrawl,
                    Title        = title
                };
                var ratings = scores.Select(s => new Rating
                {
                    Id       = Guid.NewGuid(),
                    MovieUrl = movieUrl,
                    Score    = s
                }).ToList();

                RatingRepository.GetAll(movieUrl).Returns(ratings);
                MoviesService.GetMovie(movieUrl).Returns(movie);

                //Act
                var result = await HomeController.Details(movieUrl);

                //Assert
                var viewResult = Assert.IsType <ViewResult>(result);
                var model      = Assert.IsAssignableFrom <MovieViewModel>(viewResult.ViewData.Model);

                Assert.Equal(movie.Title, model.Title);
                Assert.True(model.Scores.SequenceEqual(scores));
                Assert.Equal(title, model.Title);
            }
Example #5
0
        public async Task Should_Throw_MovieNotFoundException_On_GetMovie_When_Id_Is_Null()
        {
            // Arrange
            Mock <IMoviesRepository> mockMovieRepository = new Mock <IMoviesRepository>(MockBehavior.Loose);
            MoviesService            systemUnderTest     = new MoviesService(mockMovieRepository.Object);

            // Act
            Task getMovie = systemUnderTest.GetMovie(null);

            // Assert
            await Assert.ThrowsAsync <MovieNotFoundException>(() => getMovie);
        }
Example #6
0
        public async Task <IActionResult> Details(string movieUrl)
        {
            var movie = await MoviesService.GetMovie(movieUrl);

            var ratings = await RatingRepository.GetAll(movieUrl);

            var viewModel = new MovieViewModel
            {
                Title        = movie.Title,
                OpeningCrawl = movie.OpeningCrawl,
                Scores       = ratings.Select(r => r.Score)
            };

            return(View(viewModel));
        }
Example #7
0
        public async Task Should_Return_Movie_On_GetMovie_When_Repository_Found_It()
        {
            // Arrange
            int   id       = 1;
            Movie expected = new Movie();
            Mock <IMoviesRepository> mockMovieRepository = new Mock <IMoviesRepository>(MockBehavior.Loose);

            mockMovieRepository.Setup(x => x.GetByIdAsync(id)).Returns(Task.FromResult(expected));
            MoviesService systemUnderTest = new MoviesService(mockMovieRepository.Object);

            // Act
            Movie returnValue = await systemUnderTest.GetMovie(id);

            // Assert
            Assert.Equal(expected, returnValue);
        }
Example #8
0
        public async Task Should_Throw_MovieNotFoundException_On_GetMovie_When_NoMovie_Is_Found()
        {
            // Arrange
            int   id       = 1;
            Movie expected = null;
            Mock <IMoviesRepository> mockMovieRepository = new Mock <IMoviesRepository>(MockBehavior.Loose);

            mockMovieRepository.Setup(x => x.GetByIdAsync(id)).Returns(Task.FromResult(expected));
            MoviesService systemUnderTest = new MoviesService(mockMovieRepository.Object);

            // Act
            Task getMovie = systemUnderTest.GetMovie(id);

            // Assert
            await Assert.ThrowsAsync <MovieNotFoundException>(() => getMovie);
        }
Example #9
0
        public void GetMovieShouldReturnMovie()
        {
            DbContextOptions <UltimateMoviesDbContext> options = new DbContextOptionsBuilder <UltimateMoviesDbContext>()
                                                                 .UseInMemoryDatabase(databaseName: "Movies_GetMovie_Database")
                                                                 .Options;
            UltimateMoviesDbContext db = new UltimateMoviesDbContext(options);

            IMoviesService moviesService = new MoviesService(db);

            db.Movies.Add(new Movie {
                Name = "Test Movie"
            });

            db.SaveChanges();

            Movie movie = moviesService.GetMovie(db.Movies.Last().Id);

            Assert.Equal("Test Movie", movie.Name);
        }