Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }