public void ConvertMovieWithVideosToMovieDetails_WithoutYoutubeTeaser_ReturnsValidDetails() { var optionsMonitorMock = new Mock <IOptionsMonitor <TheMovieDbApiOptions> >(); optionsMonitorMock.Setup(x => x.CurrentValue).Returns(new TheMovieDbApiOptions()); var converter = new TheMovieDbConverter(optionsMonitorMock.Object); MovieWithVideosInfo movieWithVideosInfo = new MovieWithVideosInfo() { Videos = new ListData <VideoInfo>() { Result = new System.Collections.Generic.List <VideoInfo>() { new VideoInfo() { Site = "YouTube", Key = "qwerty", Type = "Trailer" } } } }; var result = converter.ConvertMovieWithVideosToMovieDetails(movieWithVideosInfo); Assert.IsNull(result.Teaser); }
public void ConvertMovieWithVideosToMovieDetails_WithYoutubeTeaser_ReturnsValidDetails() { TheMovieDbApiOptions options = new TheMovieDbApiOptions() { YoutubeEmbed = "<iframe src=\"youtube.com/{video-id}\"/>" }; var optionsMonitorMock = new Mock <IOptionsMonitor <TheMovieDbApiOptions> >(); optionsMonitorMock.Setup(x => x.CurrentValue).Returns(options); var converter = new TheMovieDbConverter(optionsMonitorMock.Object); MovieWithVideosInfo movieWithVideosInfo = new MovieWithVideosInfo() { Videos = new ListData <VideoInfo>() { Result = new System.Collections.Generic.List <VideoInfo>() { new VideoInfo() { Site = "YouTube", Key = "qwerty", Type = "Teaser" } } } }; MovieDetails movieDetails = new MovieDetails() { Teaser = "<iframe src=\"youtube.com/qwerty\"/>" }; var result = converter.ConvertMovieWithVideosToMovieDetails(movieWithVideosInfo); Assert.AreEqual(movieDetails.Teaser, result.Teaser); }
public MovieDetails ConvertMovieWithVideosToMovieDetails(MovieWithVideosInfo movie) { if (movie == null) { return(null); } var result = new MovieDetails(); result.General = ConvertMovieListItemToQuickInfo(movie); result.Budget = movie.Budget; result.Revenue = movie.Revenue; result.Website = movie.Homepage; result.ImdbLink = "https://www.imdb.com/title/" + movie.ImdbId; var duration = TimeSpan.FromMinutes(movie.Runtime); result.Duration = duration.ToString(); string teaserEmbed = null; if (movie.Videos != null && movie.Videos.Result != null) { var video = movie.Videos.Result.Where(x => x.Type.ToLower() == "teaser").FirstOrDefault(); if (video != null && video.Site.ToLower() == "youtube") { teaserEmbed = movieDbOptions.YoutubeEmbed.Replace("{video-id}", video.Key); } } result.Teaser = teaserEmbed; return(result); }
public void ConvertMovieWithVideosToMovieDetails_GeneralFields_ReturnsValidDetails() { TheMovieDbApiOptions options = new TheMovieDbApiOptions() { PosterPath = "http://path.com", NoPosterPath = "http://nopath.com" }; var optionsMonitorMock = new Mock <IOptionsMonitor <TheMovieDbApiOptions> >(); optionsMonitorMock.Setup(x => x.CurrentValue).Returns(options); var converter = new TheMovieDbConverter(optionsMonitorMock.Object); MovieWithVideosInfo movieWithVideosInfo = new MovieWithVideosInfo() { Adult = false, BackdropPath = "/srYya1ZlI97Au4jUYAktDe3avyA.jpg", GenreIds = new int[] { 14, 28, 12 }, Id = 464052, OriginalLanguage = "en", OriginalTitle = "Wonder Woman 1984", Overview = "Wonder Woman comes into conflict with the Soviet Union during the Cold War in the 1980s and finds a formidable foe by the name of the Cheetah.", Popularity = 4749.437, ReleaseDate = new DateTime(2020, 12, 16), Title = "Wonder Woman 1984", Video = false, VoteAverage = 7.2, VoteCount = 2385, Budget = 200000000, Revenue = 131400000, Homepage = "https://www.warnerbros.com/movies/wonder-woman-1984", ImdbId = "tt7126948", Runtime = 151, Videos = null }; MovieDetails movieDetails = new MovieDetails() { Budget = 200000000, Revenue = 131400000, Website = "https://www.warnerbros.com/movies/wonder-woman-1984", ImdbLink = "https://www.imdb.com/title/tt7126948", Duration = "02:31:00", Teaser = null }; var result = converter.ConvertMovieWithVideosToMovieDetails(movieWithVideosInfo); Assert.AreEqual(movieDetails.Budget, result.Budget); Assert.AreEqual(movieDetails.Revenue, result.Revenue); Assert.AreEqual(movieDetails.Website, result.Website); Assert.AreEqual(movieDetails.ImdbLink, result.ImdbLink); Assert.AreEqual(movieDetails.Duration, result.Duration); Assert.AreEqual(movieDetails.Teaser, result.Teaser); Assert.IsNotNull(result.General); }