public ActionResult Details(int id) { Movie movie = _movies.GetMovie(id); if (movie == null) { return(HttpNotFound()); } return(View(movie)); }
public IHttpActionResult GetMovie(int id) { var movie = _movies.GetMovie(id); if (movie == null) { return(NotFound()); } return(Ok(Mapper.Map <Movie, MovieDto>(movie))); }
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)); }
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); }
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); }
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)); }
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); }
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); }
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); }