示例#1
0
        private async Task <List <Season> > GetAllEpisodesInfo(ISeriesIdentifier seriesIdentifier, string authToken,
                                                               IWebProxy proxyPreferences)
        {
            List <TheTvDbEpisode> theTvDbEpisodes = new List <TheTvDbEpisode>();
            int pageNumber = 1;

            while (true)
            {
                string episodesJson =
                    await _apiDownloader.GetEpisodesAsync(seriesIdentifier, pageNumber, authToken, proxyPreferences);

                TheTvDbEpisodeResult episodesResults =
                    JsonConvert.DeserializeObject <TheTvDbEpisodeResult>(episodesJson);
                if (episodesResults?.Data == null)
                {
                    break;
                }
                theTvDbEpisodes.AddRange(episodesResults.Data);
                if (episodesResults.Links?.Next == null)
                {
                    break;
                }
                pageNumber = episodesResults.Links.Next.Value;
            }

            List <Season> seasons = Adapt(theTvDbEpisodes).ToList();

            return(seasons);
        }
        public async Task ShouldProduceEpisodes()
        {
            // Arrange
            var seriesId  = GetSeriesIdentifier(KnownTvShowIds.StarWarsTheBadBatch);
            var authToken = await GetAuthTokenAsync();

            var sut = CreateDownloader();

            // Act
            var actual = await sut.GetEpisodesAsync(seriesId, authToken, null);

            // Assert
            Assert.That(actual, Is.Not.Null);
            Assert.That(actual, Is.Not.Empty);

            Console.WriteLine(actual);
            TheTvDbEpisodeResult response =
                JsonConvert.DeserializeObject <TheTvDbEpisodeResult>(actual);

            Assert.That(response, Is.Not.Null);
            Assert.That(response.Errors, Is.Null | Is.Empty);
            Assert.That(response.Data, Is.Not.Null);
            Assert.That(response.Data.Length, Is.GreaterThan(0));
            Assert.That(response.Data[0], Is.Not.Null);
            Assert.That(response.Data[0].SeriesId, Is.EqualTo(KnownTvShowIds.StarWarsTheBadBatch.ToString("D")));
            Assert.That(response.Data[0].EpisodeName, Is.EqualTo("Aftermath"));
        }