public void GetMovieDetailsSuccess1() { /* * Assert that the GET movie endpoint receives a 200 response, verify response body * 1. Send call to get endpoint 3/movie/{movieId}?api_key={apiKey}&language=en-US where movie id is 274 * 2. Assert that response code is 200 * 3. Assert that the movie title is correct */ //new requests object APIs api = new APIs(); //send get call with appropriate endpoint and apikey //var response = requests.Get(Endpoint: string.Format(@"3/movie/{0}?api_key={1}&language=en-US", "274", apiKey)); var response = api.Movies.MovieDetails(MovieId: "274").Get(); MovieDetailsResponse detailsObject = null; try { //deserialize json response detailsObject = JsonConvert.DeserializeObject <MovieDetailsResponse>(response.Content.ReadAsStringAsync().Result); } catch (JsonReaderException jsonEx) { //fail test if deserialization fails Assert.Fail(string.Format("Unable to deserialize response. Exception: {0}"), jsonEx); } //assert that response has a 200 OK code Assert.AreEqual(200, (int)response.StatusCode); //assert that the movie title is correct in the response body Assert.AreEqual("The Silence of the Lambs", detailsObject.title); }
public async Task <MovieDetailsResponse> GetMovieById(int id) { var movieDetail = new MovieDetailsResponse(); var movie = await _repository.GetByIdAsync(id); movieDetail.Id = movie.Id; movieDetail.Title = movie.Title; movieDetail.Overview = movie.Overview; movieDetail.Tagline = movie.Tagline; movieDetail.Budget = movie.Budget; movieDetail.Revenue = movie.Revenue; movieDetail.ImdbUrl = movie.ImdbUrl; movieDetail.TmdbUrl = movie.TmdbUrl; movieDetail.PosterUrl = movie.PosterUrl; movieDetail.BackdropUrl = movie.BackdropUrl; movieDetail.OriginalLanguage = movie.OriginalLanguage; movieDetail.ReleaseDate = movie.ReleaseDate; movieDetail.RunTime = movie.RunTime; movieDetail.Price = movie.Price; movieDetail.Genres = new List <GenreModel>(); foreach (var genre in movie.Genres) { movieDetail.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } movieDetail.Casts = new List <CastResponseModel>(); foreach (var mc in movie.MovieCasts) { movieDetail.Casts.Add(new CastResponseModel { Id = mc.Cast.Id, Name = mc.Cast.Name, Gender = mc.Cast.Gender, TmdbUrl = mc.Cast.TmdbUrl, ProfilePath = mc.Cast.ProfilePath, Character = mc.Character }); } if (movie.Reviews.Any()) { decimal rating = 0; foreach (var review in movie.Reviews) { rating += review.Rating; } movieDetail.Rating = rating / movie.Reviews.Count(); } return(movieDetail); }
public async Task <IEnumerable <MovieDetailsResponse> > GetTopGrossingMovies() { var movieDetails = new List <MovieDetailsResponse>(); var movies = await _repository.GetTopRevenueMovies(); foreach (var movie in movies) { var movieCard = new MovieDetailsResponse { Id = movie.Id, PosterUrl = movie.PosterUrl, Revenue = movie.Revenue, Title = movie.Title }; movieDetails.Add(movieCard); } return(movieDetails); }
public async Task <PaginationResponse <MovieDetailsResponse> > GetMoviesByGenreId(int genreId, int pageNumber = 0, int pageSize = 30) { var movies = await _repository.GetMoviesByGenreId(genreId, pageNumber, pageSize); var movieResponses = new PaginationResponse <MovieDetailsResponse> { PageNumber = pageNumber, PageSize = pageSize, Data = new List <MovieDetailsResponse>() }; foreach (var movie in movies.Data) { var movieDetail = new MovieDetailsResponse(); movieDetail.Id = movie.Id; movieDetail.Title = movie.Title; movieDetail.Overview = movie.Overview; movieDetail.Tagline = movie.Tagline; movieDetail.Budget = movie.Budget; movieDetail.Revenue = movie.Revenue; movieDetail.ImdbUrl = movie.ImdbUrl; movieDetail.TmdbUrl = movie.TmdbUrl; movieDetail.PosterUrl = movie.PosterUrl; movieDetail.BackdropUrl = movie.BackdropUrl; movieDetail.OriginalLanguage = movie.OriginalLanguage; movieDetail.ReleaseDate = movie.ReleaseDate; movieDetail.RunTime = movie.RunTime; movieDetail.Price = movie.Price; movieDetail.Genres = new List <GenreModel>(); foreach (var genre in movie.Genres) { movieDetail.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } movieDetail.Casts = new List <CastResponseModel>(); foreach (var mc in movie.MovieCasts) { movieDetail.Casts.Add(new CastResponseModel { Id = mc.Cast.Id, Name = mc.Cast.Name, Gender = mc.Cast.Gender, TmdbUrl = mc.Cast.TmdbUrl, ProfilePath = mc.Cast.ProfilePath, Character = mc.Character }); } if (movie.Reviews.Any()) { decimal rating = 0; foreach (var review in movie.Reviews) { rating += review.Rating; } movieDetail.Rating = rating / movie.Reviews.Count(); } movieResponses.Data.Add(movieDetail); } return(movieResponses); }
public async Task <MovieDetailsResponse> BuyMovie(int id) { var movie = await _repository.GetByIdAsync(id); if (movie == null) { return(null); } var purchase = new Purchase { UserId = _currentUser.UserId, TotalPrice = movie.Price, MovieId = id, PurchaseNumber = Guid.NewGuid() }; await _purchaseRepository.AddAsync(purchase); if (purchase.Id > 0) { var movieDetail = new MovieDetailsResponse(); movieDetail.Id = movie.Id; movieDetail.Title = movie.Title; movieDetail.Overview = movie.Overview; movieDetail.Tagline = movie.Tagline; movieDetail.Budget = movie.Budget; movieDetail.Revenue = movie.Revenue; movieDetail.ImdbUrl = movie.ImdbUrl; movieDetail.TmdbUrl = movie.TmdbUrl; movieDetail.PosterUrl = movie.PosterUrl; movieDetail.BackdropUrl = movie.BackdropUrl; movieDetail.OriginalLanguage = movie.OriginalLanguage; movieDetail.ReleaseDate = movie.ReleaseDate; movieDetail.RunTime = movie.RunTime; movieDetail.Price = movie.Price; movieDetail.Genres = new List <GenreModel>(); foreach (var genre in movie.Genres) { movieDetail.Genres.Add(new GenreModel { Id = genre.Id, Name = genre.Name }); } movieDetail.Casts = new List <CastResponseModel>(); foreach (var mc in movie.MovieCasts) { movieDetail.Casts.Add(new CastResponseModel { Id = mc.Cast.Id, Name = mc.Cast.Name, Gender = mc.Cast.Gender, TmdbUrl = mc.Cast.TmdbUrl, ProfilePath = mc.Cast.ProfilePath, Character = mc.Character }); } if (movie.Reviews.Any()) { decimal rating = 0; foreach (var review in movie.Reviews) { rating += review.Rating; } movieDetail.Rating = rating / movie.Reviews.Count(); } return(movieDetail); } return(null); }