public async Task Test_EpisodeScrobblePostResponseObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new EpisodeScrobblePostResponseObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var episodeScrobbleResponse = await jsonReader.ReadObjectAsync(stream);

                episodeScrobbleResponse.Should().NotBeNull();
                episodeScrobbleResponse.Id.Should().Be(0UL);
                episodeScrobbleResponse.Action.Should().Be(TraktScrobbleActionType.Stop);
                episodeScrobbleResponse.Progress.Should().Be(85.9f);
                episodeScrobbleResponse.Sharing.Should().NotBeNull();
                episodeScrobbleResponse.Sharing.Twitter.Should().BeTrue();
                episodeScrobbleResponse.Sharing.Google.Should().BeTrue();
                episodeScrobbleResponse.Sharing.Tumblr.Should().BeTrue();
                episodeScrobbleResponse.Sharing.Medium.Should().BeTrue();
                episodeScrobbleResponse.Sharing.Slack.Should().BeTrue();
                episodeScrobbleResponse.Episode.Should().NotBeNull();
                episodeScrobbleResponse.Episode.SeasonNumber.Should().Be(1);
                episodeScrobbleResponse.Episode.Number.Should().Be(1);
                episodeScrobbleResponse.Episode.Title.Should().Be("Winter Is Coming");
                episodeScrobbleResponse.Episode.Ids.Should().NotBeNull();
                episodeScrobbleResponse.Episode.Ids.Trakt.Should().Be(73640U);
                episodeScrobbleResponse.Episode.Ids.Tvdb.Should().Be(3254641U);
                episodeScrobbleResponse.Episode.Ids.Imdb.Should().Be("tt1480055");
                episodeScrobbleResponse.Episode.Ids.Tmdb.Should().Be(63056U);
                episodeScrobbleResponse.Episode.Ids.TvRage.Should().Be(1065008299U);
                episodeScrobbleResponse.Show.Should().NotBeNull();
                episodeScrobbleResponse.Show.Title.Should().Be("Game of Thrones");
                episodeScrobbleResponse.Show.Year.Should().Be(2011);
                episodeScrobbleResponse.Show.Ids.Should().NotBeNull();
                episodeScrobbleResponse.Show.Ids.Trakt.Should().Be(1390U);
                episodeScrobbleResponse.Show.Ids.Slug.Should().Be("game-of-thrones");
                episodeScrobbleResponse.Show.Ids.Tvdb.Should().Be(121361U);
                episodeScrobbleResponse.Show.Ids.Imdb.Should().Be("tt0944947");
                episodeScrobbleResponse.Show.Ids.Tmdb.Should().Be(1399U);
                episodeScrobbleResponse.Show.Ids.TvRage.Should().Be(24493U);
            }
        }
Example #2
0
        public async Task Test_CertificationArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var traktJsonReader = new CertificationArrayJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktCertifications = await traktJsonReader.ReadArrayAsync(stream);

                traktCertifications.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);
                var items = traktCertifications.ToArray();

                items[0].Should().NotBeNull();
                items[0].Name.Should().BeNull();
                items[0].Slug.Should().Be("pg");
                items[0].Description.Should().Be("Parental Guidance Suggested");

                items[1].Should().NotBeNull();
                items[1].Name.Should().Be("PG-13");
                items[1].Slug.Should().Be("pg-13");
                items[1].Description.Should().Be("Parents Strongly Cautioned - Ages 13+ Recommended");
            }
        }
        public async Task Test_GenreArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var jsonReader = new ArrayJsonReader <ITraktGenre>();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                IEnumerable <ITraktGenre> traktGenres = await jsonReader.ReadArrayAsync(stream);

                traktGenres.Should().NotBeNull();
                ITraktGenre[] genres = traktGenres.ToArray();

                genres[0].Should().NotBeNull();
                genres[0].Name.Should().BeNull();
                genres[0].Slug.Should().Be("action");
                genres[0].Type.Should().BeNull();

                genres[1].Should().NotBeNull();
                genres[1].Name.Should().Be("Action");
                genres[1].Slug.Should().Be("action");
                genres[1].Type.Should().BeNull();
            }
        }
        public async Task Test_EpisodeCheckinPostResponseObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new EpisodeCheckinPostResponseObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var checkinEpisodeResponse = await jsonReader.ReadObjectAsync(stream);

                checkinEpisodeResponse.Should().NotBeNull();
                checkinEpisodeResponse.Id.Should().Be(0UL);
                checkinEpisodeResponse.WatchedAt.Should().Be(DateTime.Parse("2014-08-06T06:54:36.859Z").ToUniversalTime());
                checkinEpisodeResponse.Sharing.Should().NotBeNull();
                checkinEpisodeResponse.Sharing.Twitter.Should().BeTrue();
                checkinEpisodeResponse.Sharing.Google.Should().BeTrue();
                checkinEpisodeResponse.Sharing.Tumblr.Should().BeTrue();
                checkinEpisodeResponse.Sharing.Medium.Should().BeTrue();
                checkinEpisodeResponse.Sharing.Slack.Should().BeTrue();
                checkinEpisodeResponse.Episode.Should().NotBeNull();
                checkinEpisodeResponse.Episode.SeasonNumber.Should().Be(1);
                checkinEpisodeResponse.Episode.Number.Should().Be(1);
                checkinEpisodeResponse.Episode.Title.Should().Be("Winter Is Coming");
                checkinEpisodeResponse.Episode.Ids.Should().NotBeNull();
                checkinEpisodeResponse.Episode.Ids.Trakt.Should().Be(73640U);
                checkinEpisodeResponse.Episode.Ids.Tvdb.Should().Be(3254641U);
                checkinEpisodeResponse.Episode.Ids.Imdb.Should().Be("tt1480055");
                checkinEpisodeResponse.Episode.Ids.Tmdb.Should().Be(63056U);
                checkinEpisodeResponse.Episode.Ids.TvRage.Should().Be(1065008299U);
                checkinEpisodeResponse.Show.Should().NotBeNull();
                checkinEpisodeResponse.Show.Title.Should().Be("Game of Thrones");
                checkinEpisodeResponse.Show.Year.Should().Be(2011);
                checkinEpisodeResponse.Show.Ids.Should().NotBeNull();
                checkinEpisodeResponse.Show.Ids.Trakt.Should().Be(1390U);
                checkinEpisodeResponse.Show.Ids.Slug.Should().Be("game-of-thrones");
                checkinEpisodeResponse.Show.Ids.Tvdb.Should().Be(121361U);
                checkinEpisodeResponse.Show.Ids.Imdb.Should().Be("tt0944947");
                checkinEpisodeResponse.Show.Ids.Tmdb.Should().Be(1399U);
                checkinEpisodeResponse.Show.Ids.TvRage.Should().Be(24493U);
            }
        }
        public async Task Test_WatchedMovieObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new WatchedMovieObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktWatchedMovie = await jsonReader.ReadObjectAsync(stream);

                traktWatchedMovie.Should().NotBeNull();
                traktWatchedMovie.Plays.Should().BeNull();
                traktWatchedMovie.LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());

                traktWatchedMovie.Movie.Should().NotBeNull();
                traktWatchedMovie.Movie.Title.Should().Be("Star Wars: The Force Awakens");
                traktWatchedMovie.Movie.Year.Should().Be(2015);
                traktWatchedMovie.Movie.Ids.Should().NotBeNull();
                traktWatchedMovie.Movie.Ids.Trakt.Should().Be(94024U);
                traktWatchedMovie.Movie.Ids.Slug.Should().Be("star-wars-the-force-awakens-2015");
                traktWatchedMovie.Movie.Ids.Imdb.Should().Be("tt2488496");
                traktWatchedMovie.Movie.Ids.Tmdb.Should().Be(140607U);
            }
        }
        public async Task Test_RecentlyUpdatedShowObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var traktJsonReader = new RecentlyUpdatedShowObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktRecentlyUpdatedShow = await traktJsonReader.ReadObjectAsync(stream);

                traktRecentlyUpdatedShow.Should().NotBeNull();
                traktRecentlyUpdatedShow.RecentlyUpdatedAt.Should().BeNull();
                traktRecentlyUpdatedShow.Show.Should().NotBeNull();
                traktRecentlyUpdatedShow.Show.Title.Should().Be("Game of Thrones");
                traktRecentlyUpdatedShow.Show.Year.Should().Be(2011);
                traktRecentlyUpdatedShow.Show.Ids.Should().NotBeNull();
                traktRecentlyUpdatedShow.Show.Ids.Trakt.Should().Be(1390U);
                traktRecentlyUpdatedShow.Show.Ids.Slug.Should().Be("game-of-thrones");
                traktRecentlyUpdatedShow.Show.Ids.Tvdb.Should().Be(121361U);
                traktRecentlyUpdatedShow.Show.Ids.Imdb.Should().Be("tt0944947");
                traktRecentlyUpdatedShow.Show.Ids.Tmdb.Should().Be(1399U);
                traktRecentlyUpdatedShow.Show.Ids.TvRage.Should().Be(24493U);
            }
        }
Example #7
0
        public async Task Test_MostPWCMovieObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var traktJsonReader = new MostPWCMovieObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktMostPWCMovie = await traktJsonReader.ReadObjectAsync(stream);

                traktMostPWCMovie.Should().NotBeNull();
                traktMostPWCMovie.WatcherCount.Should().BeNull();
                traktMostPWCMovie.PlayCount.Should().Be(7100);
                traktMostPWCMovie.CollectedCount.Should().Be(1348);
                traktMostPWCMovie.Movie.Should().NotBeNull();
                traktMostPWCMovie.Movie.Title.Should().Be("Star Wars: The Force Awakens");
                traktMostPWCMovie.Movie.Year.Should().Be(2015);
                traktMostPWCMovie.Movie.Ids.Should().NotBeNull();
                traktMostPWCMovie.Movie.Ids.Trakt.Should().Be(94024U);
                traktMostPWCMovie.Movie.Ids.Slug.Should().Be("star-wars-the-force-awakens-2015");
                traktMostPWCMovie.Movie.Ids.Imdb.Should().Be("tt2488496");
                traktMostPWCMovie.Movie.Ids.Tmdb.Should().Be(140607U);
            }
        }
        public async Task Test_PersonShowCreditsCastItemObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new PersonShowCreditsCastItemObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var showCreditsCastItem = await jsonReader.ReadObjectAsync(stream);

                showCreditsCastItem.Should().NotBeNull();
                showCreditsCastItem.Characters.Should().BeNull();
                showCreditsCastItem.Show.Should().NotBeNull();
                showCreditsCastItem.Show.Title.Should().Be("Game of Thrones");
                showCreditsCastItem.Show.Year.Should().Be(2011);
                showCreditsCastItem.Show.Ids.Should().NotBeNull();
                showCreditsCastItem.Show.Ids.Trakt.Should().Be(1390U);
                showCreditsCastItem.Show.Ids.Slug.Should().Be("game-of-thrones");
                showCreditsCastItem.Show.Ids.Tvdb.Should().Be(121361U);
                showCreditsCastItem.Show.Ids.Imdb.Should().Be("tt0944947");
                showCreditsCastItem.Show.Ids.Tmdb.Should().Be(1399U);
                showCreditsCastItem.Show.Ids.TvRage.Should().Be(24493U);
            }
        }
        public async Task Test_PersonShowCreditsCastItemArrayJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var traktJsonReader = new ArrayJsonReader<ITraktPersonShowCreditsCastItem>();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var showCreditsCastItems = await traktJsonReader.ReadArrayAsync(stream);

                showCreditsCastItems.Should().NotBeNull();
                var items = showCreditsCastItems.ToArray();

                items[0].Should().NotBeNull();
                items[0].Characters.Should().BeNull();
                items[0].Show.Should().NotBeNull();
                items[0].Show.Title.Should().Be("Game of Thrones");
                items[0].Show.Year.Should().Be(2011);
                items[0].Show.Ids.Should().NotBeNull();
                items[0].Show.Ids.Trakt.Should().Be(1390U);
                items[0].Show.Ids.Slug.Should().Be("game-of-thrones");
                items[0].Show.Ids.Tvdb.Should().Be(121361U);
                items[0].Show.Ids.Imdb.Should().Be("tt0944947");
                items[0].Show.Ids.Tmdb.Should().Be(1399U);
                items[0].Show.Ids.TvRage.Should().Be(24493U);

                items[1].Should().NotBeNull();
                items[1].Characters.Should().NotBeNull().And.HaveCount(1).And.Contain("Iris West");
                items[1].Show.Should().NotBeNull();
                items[1].Show.Title.Should().Be("The Flash");
                items[1].Show.Year.Should().Be(2014);
                items[1].Show.Ids.Should().NotBeNull();
                items[1].Show.Ids.Trakt.Should().Be(60300U);
                items[1].Show.Ids.Slug.Should().Be("the-flash-2014");
                items[1].Show.Ids.Tvdb.Should().Be(279121U);
                items[1].Show.Ids.Imdb.Should().Be("tt3107288");
                items[1].Show.Ids.Tmdb.Should().Be(60735U);
                items[1].Show.Ids.TvRage.Should().Be(36939U);
            }
        }
Example #10
0
        public async Task Test_WatchedShowSeasonObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new WatchedShowSeasonObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktWatchedShowSeason = await jsonReader.ReadObjectAsync(stream);

                traktWatchedShowSeason.Should().NotBeNull();
                traktWatchedShowSeason.Number.Should().BeNull();

                traktWatchedShowSeason.Episodes.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);
                var traktWatchedShowSeasonEpisodes = traktWatchedShowSeason.Episodes.ToArray();

                traktWatchedShowSeasonEpisodes[0].Number.Should().Be(1);
                traktWatchedShowSeasonEpisodes[0].Plays.Should().Be(1);
                traktWatchedShowSeasonEpisodes[0].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());

                traktWatchedShowSeasonEpisodes[1].Number.Should().Be(2);
                traktWatchedShowSeasonEpisodes[1].Plays.Should().Be(1);
                traktWatchedShowSeasonEpisodes[1].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());
            }
        }
Example #11
0
        public async Task Test_UserCustomListItemsRemovePostResponseObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new UserCustomListItemsRemovePostResponseObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var customListItemsRemovePostResponse = await jsonReader.ReadObjectAsync(stream);

                customListItemsRemovePostResponse.Should().NotBeNull();

                customListItemsRemovePostResponse.Deleted.Should().BeNull();

                customListItemsRemovePostResponse.NotFound.Should().NotBeNull();

                var notFound = customListItemsRemovePostResponse.NotFound;
                notFound.Movies.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var movies = notFound.Movies.ToArray();

                movies[0].Should().NotBeNull();
                movies[0].Ids.Should().NotBeNull();
                movies[0].Ids.Trakt.Should().Be(94024U);
                movies[0].Ids.Slug.Should().Be("star-wars-the-force-awakens-2015");
                movies[0].Ids.Imdb.Should().Be("tt2488496");
                movies[0].Ids.Tmdb.Should().Be(140607U);

                movies[1].Should().NotBeNull();
                movies[1].Ids.Should().NotBeNull();
                movies[1].Ids.Trakt.Should().Be(172687U);
                movies[1].Ids.Slug.Should().Be("king-arthur-legend-of-the-sword-2017");
                movies[1].Ids.Imdb.Should().Be("tt1972591");
                movies[1].Ids.Tmdb.Should().Be(274857U);

                // --------------------------------------------------

                notFound.Shows.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var shows = notFound.Shows.ToArray();

                shows[0].Should().NotBeNull();
                shows[0].Ids.Should().NotBeNull();
                shows[0].Ids.Trakt.Should().Be(1390U);
                shows[0].Ids.Slug.Should().Be("game-of-thrones");
                shows[0].Ids.Tvdb.Should().Be(121361U);
                shows[0].Ids.Imdb.Should().Be("tt0944947");
                shows[0].Ids.Tmdb.Should().Be(1399U);
                shows[0].Ids.TvRage.Should().Be(24493U);

                shows[1].Should().NotBeNull();
                shows[1].Ids.Should().NotBeNull();
                shows[1].Ids.Trakt.Should().Be(60300U);
                shows[1].Ids.Slug.Should().Be("the-flash-2014");
                shows[1].Ids.Tvdb.Should().Be(279121U);
                shows[1].Ids.Imdb.Should().Be("tt3107288");
                shows[1].Ids.Tmdb.Should().Be(60735U);
                shows[1].Ids.TvRage.Should().Be(36939U);

                // --------------------------------------------------

                notFound.Seasons.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var seasons = notFound.Seasons.ToArray();

                seasons[0].Should().NotBeNull();
                seasons[0].Ids.Should().NotBeNull();
                seasons[0].Ids.Trakt.Should().Be(61430U);
                seasons[0].Ids.Tvdb.Should().Be(279121U);
                seasons[0].Ids.Tmdb.Should().Be(60523U);
                seasons[0].Ids.TvRage.Should().Be(36939U);

                seasons[1].Should().NotBeNull();
                seasons[1].Ids.Should().NotBeNull();
                seasons[1].Ids.Trakt.Should().Be(61431U);
                seasons[1].Ids.Tvdb.Should().Be(578373U);
                seasons[1].Ids.Tmdb.Should().Be(60524U);
                seasons[1].Ids.TvRage.Should().Be(36940U);

                // --------------------------------------------------

                notFound.Episodes.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var episodes = notFound.Episodes.ToArray();

                episodes[0].Should().NotBeNull();
                episodes[0].Ids.Should().NotBeNull();
                episodes[0].Ids.Trakt.Should().Be(73640U);
                episodes[0].Ids.Tvdb.Should().Be(3254641U);
                episodes[0].Ids.Imdb.Should().Be("tt1480055");
                episodes[0].Ids.Tmdb.Should().Be(63056U);
                episodes[0].Ids.TvRage.Should().Be(1065008299U);

                episodes[1].Should().NotBeNull();
                episodes[1].Ids.Should().NotBeNull();
                episodes[1].Ids.Trakt.Should().Be(73641U);
                episodes[1].Ids.Tvdb.Should().Be(3436411U);
                episodes[1].Ids.Imdb.Should().Be("tt1668746");
                episodes[1].Ids.Tmdb.Should().Be(63057U);
                episodes[1].Ids.TvRage.Should().Be(1065023912U);

                // --------------------------------------------------

                notFound.People.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var people = notFound.People.ToArray();

                people[0].Should().NotBeNull();
                people[0].Ids.Should().NotBeNull();
                people[0].Ids.Trakt.Should().Be(297737U);
                people[0].Ids.Slug.Should().Be("bryan-cranston");
                people[0].Ids.Imdb.Should().Be("nm0186505");
                people[0].Ids.Tmdb.Should().Be(17419U);
                people[0].Ids.TvRage.Should().Be(1797U);

                people[1].Should().NotBeNull();
                people[1].Ids.Should().NotBeNull();
                people[1].Ids.Trakt.Should().Be(9486U);
                people[1].Ids.Slug.Should().Be("samuel-l-jackson");
                people[1].Ids.Imdb.Should().Be("nm0000168");
                people[1].Ids.Tmdb.Should().Be(2231U);
                people[1].Ids.TvRage.Should().Be(55720U);
            }
        }
        public async Task Test_CollectionShowSeasonArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var jsonReader = new CollectionShowSeasonArrayJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktCollectionShowSeasons = await jsonReader.ReadArrayAsync(stream);

                traktCollectionShowSeasons.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var collectionShowSeasons = traktCollectionShowSeasons.ToArray();

                collectionShowSeasons[0].Should().NotBeNull();
                collectionShowSeasons[0].Number.Should().BeNull();

                collectionShowSeasons[0].Episodes.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);
                var collectionShowSeasonEpisodes = collectionShowSeasons[0].Episodes.ToArray();

                collectionShowSeasonEpisodes[0].Number.Should().Be(1);
                collectionShowSeasonEpisodes[0].CollectedAt.Should().Be(DateTime.Parse("2014-07-14T01:00:00.000Z").ToUniversalTime());
                collectionShowSeasonEpisodes[0].Metadata.Should().NotBeNull();
                collectionShowSeasonEpisodes[0].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                collectionShowSeasonEpisodes[0].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                collectionShowSeasonEpisodes[0].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                collectionShowSeasonEpisodes[0].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                collectionShowSeasonEpisodes[0].Metadata.ThreeDimensional.Should().BeTrue();

                collectionShowSeasonEpisodes[1].Number.Should().Be(2);
                collectionShowSeasonEpisodes[1].CollectedAt.Should().Be(DateTime.Parse("2014-07-15T01:00:00.000Z").ToUniversalTime());
                collectionShowSeasonEpisodes[1].Metadata.Should().NotBeNull();
                collectionShowSeasonEpisodes[1].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                collectionShowSeasonEpisodes[1].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                collectionShowSeasonEpisodes[1].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                collectionShowSeasonEpisodes[1].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                collectionShowSeasonEpisodes[1].Metadata.ThreeDimensional.Should().BeFalse();

                // -------------------------------------

                collectionShowSeasons[1].Should().NotBeNull();
                collectionShowSeasons[1].Number.Should().Be(2);

                collectionShowSeasons[1].Episodes.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);
                collectionShowSeasonEpisodes = collectionShowSeasons[1].Episodes.ToArray();

                collectionShowSeasonEpisodes[0].Number.Should().Be(1);
                collectionShowSeasonEpisodes[0].CollectedAt.Should().Be(DateTime.Parse("2014-07-14T01:00:00.000Z").ToUniversalTime());
                collectionShowSeasonEpisodes[0].Metadata.Should().NotBeNull();
                collectionShowSeasonEpisodes[0].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                collectionShowSeasonEpisodes[0].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                collectionShowSeasonEpisodes[0].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                collectionShowSeasonEpisodes[0].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                collectionShowSeasonEpisodes[0].Metadata.ThreeDimensional.Should().BeTrue();

                collectionShowSeasonEpisodes[1].Number.Should().Be(2);
                collectionShowSeasonEpisodes[1].CollectedAt.Should().Be(DateTime.Parse("2014-07-15T01:00:00.000Z").ToUniversalTime());
                collectionShowSeasonEpisodes[1].Metadata.Should().NotBeNull();
                collectionShowSeasonEpisodes[1].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                collectionShowSeasonEpisodes[1].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                collectionShowSeasonEpisodes[1].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                collectionShowSeasonEpisodes[1].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                collectionShowSeasonEpisodes[1].Metadata.ThreeDimensional.Should().BeFalse();
            }
        }
        public async Task Test_CommentItemArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var jsonReader = new ArrayJsonReader <ITraktCommentItem>();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                IEnumerable <ITraktCommentItem> traktCommentItems = await jsonReader.ReadArrayAsync(stream);

                traktCommentItems.Should().NotBeNull();
                ITraktCommentItem[] commentItems = traktCommentItems.ToArray();

                commentItems[0].Should().NotBeNull();
                commentItems[0].Type.Should().Be(TraktObjectType.Movie);

                commentItems[0].Movie.Should().BeNull();

                commentItems[0].Show.Should().NotBeNull();
                commentItems[0].Show.Title.Should().Be("Game of Thrones");
                commentItems[0].Show.Year.Should().Be(2011);
                commentItems[0].Show.Ids.Should().NotBeNull();
                commentItems[0].Show.Ids.Trakt.Should().Be(1390U);
                commentItems[0].Show.Ids.Slug.Should().Be("game-of-thrones");
                commentItems[0].Show.Ids.Tvdb.Should().Be(121361U);
                commentItems[0].Show.Ids.Imdb.Should().Be("tt0944947");
                commentItems[0].Show.Ids.Tmdb.Should().Be(1399U);
                commentItems[0].Show.Ids.TvRage.Should().Be(24493U);

                commentItems[0].Season.Should().NotBeNull();
                commentItems[0].Season.Number.Should().Be(1);
                commentItems[0].Season.Ids.Should().NotBeNull();
                commentItems[0].Season.Ids.Trakt.Should().Be(61430U);
                commentItems[0].Season.Ids.Tvdb.Should().Be(279121U);
                commentItems[0].Season.Ids.Tmdb.Should().Be(60523U);
                commentItems[0].Season.Ids.TvRage.Should().Be(36939U);

                commentItems[0].Episode.Should().NotBeNull();
                commentItems[0].Episode.SeasonNumber.Should().Be(1);
                commentItems[0].Episode.Number.Should().Be(1);
                commentItems[0].Episode.Title.Should().Be("Winter Is Coming");
                commentItems[0].Episode.Ids.Should().NotBeNull();
                commentItems[0].Episode.Ids.Trakt.Should().Be(73640U);
                commentItems[0].Episode.Ids.Tvdb.Should().Be(3254641U);
                commentItems[0].Episode.Ids.Imdb.Should().Be("tt1480055");
                commentItems[0].Episode.Ids.Tmdb.Should().Be(63056U);
                commentItems[0].Episode.Ids.TvRage.Should().Be(1065008299U);

                commentItems[0].List.Should().NotBeNull();
                commentItems[0].List.Name.Should().Be("Star Wars in machete order");
                commentItems[0].List.Description.Should().Be("Next time you want to introduce someone to Star Wars for the first time, watch the films with them in this order: IV, V, II, III, VI.");
                commentItems[0].List.Privacy.Should().Be(TraktAccessScope.Public);
                commentItems[0].List.DisplayNumbers.Should().BeTrue();
                commentItems[0].List.AllowComments.Should().BeFalse();
                commentItems[0].List.SortBy.Should().Be("rank");
                commentItems[0].List.SortHow.Should().Be("asc");
                commentItems[0].List.CreatedAt.Should().Be(DateTime.Parse("2014-10-11T17:00:54.000Z").ToUniversalTime());
                commentItems[0].List.UpdatedAt.Should().Be(DateTime.Parse("2014-11-09T17:00:54.000Z").ToUniversalTime());
                commentItems[0].List.ItemCount.Should().Be(5);
                commentItems[0].List.CommentCount.Should().Be(1);
                commentItems[0].List.Likes.Should().Be(2);
                commentItems[0].List.Ids.Should().NotBeNull();
                commentItems[0].List.Ids.Trakt.Should().Be(55U);
                commentItems[0].List.Ids.Slug.Should().Be("star-wars-in-machete-order");
                commentItems[0].List.User.Should().NotBeNull();
                commentItems[0].List.User.Username.Should().Be("sean");
                commentItems[0].List.User.IsPrivate.Should().BeFalse();
                commentItems[0].List.User.Name.Should().Be("Sean Rudford");
                commentItems[0].List.User.IsVIP.Should().BeTrue();
                commentItems[0].List.User.IsVIP_EP.Should().BeFalse();
                commentItems[0].List.User.Ids.Should().NotBeNull();
                commentItems[0].List.User.Ids.Slug.Should().Be("sean");

                commentItems[1].Should().NotBeNull();
                commentItems[1].Type.Should().Be(TraktObjectType.Movie);

                commentItems[1].Movie.Should().NotBeNull();
                commentItems[1].Movie.Title.Should().Be("Star Wars: The Force Awakens");
                commentItems[1].Movie.Year.Should().Be(2015);
                commentItems[1].Movie.Ids.Should().NotBeNull();
                commentItems[1].Movie.Ids.Trakt.Should().Be(94024U);
                commentItems[1].Movie.Ids.Slug.Should().Be("star-wars-the-force-awakens-2015");
                commentItems[1].Movie.Ids.Imdb.Should().Be("tt2488496");
                commentItems[1].Movie.Ids.Tmdb.Should().Be(140607U);

                commentItems[1].Show.Should().NotBeNull();
                commentItems[1].Show.Title.Should().Be("Game of Thrones");
                commentItems[1].Show.Year.Should().Be(2011);
                commentItems[1].Show.Ids.Should().NotBeNull();
                commentItems[1].Show.Ids.Trakt.Should().Be(1390U);
                commentItems[1].Show.Ids.Slug.Should().Be("game-of-thrones");
                commentItems[1].Show.Ids.Tvdb.Should().Be(121361U);
                commentItems[1].Show.Ids.Imdb.Should().Be("tt0944947");
                commentItems[1].Show.Ids.Tmdb.Should().Be(1399U);
                commentItems[1].Show.Ids.TvRage.Should().Be(24493U);

                commentItems[1].Season.Should().NotBeNull();
                commentItems[1].Season.Number.Should().Be(1);
                commentItems[1].Season.Ids.Should().NotBeNull();
                commentItems[1].Season.Ids.Trakt.Should().Be(61430U);
                commentItems[1].Season.Ids.Tvdb.Should().Be(279121U);
                commentItems[1].Season.Ids.Tmdb.Should().Be(60523U);
                commentItems[1].Season.Ids.TvRage.Should().Be(36939U);

                commentItems[1].Episode.Should().NotBeNull();
                commentItems[1].Episode.SeasonNumber.Should().Be(1);
                commentItems[1].Episode.Number.Should().Be(1);
                commentItems[1].Episode.Title.Should().Be("Winter Is Coming");
                commentItems[1].Episode.Ids.Should().NotBeNull();
                commentItems[1].Episode.Ids.Trakt.Should().Be(73640U);
                commentItems[1].Episode.Ids.Tvdb.Should().Be(3254641U);
                commentItems[1].Episode.Ids.Imdb.Should().Be("tt1480055");
                commentItems[1].Episode.Ids.Tmdb.Should().Be(63056U);
                commentItems[1].Episode.Ids.TvRage.Should().Be(1065008299U);

                commentItems[1].List.Should().NotBeNull();
                commentItems[1].List.Name.Should().Be("Star Wars in machete order");
                commentItems[1].List.Description.Should().Be("Next time you want to introduce someone to Star Wars for the first time, watch the films with them in this order: IV, V, II, III, VI.");
                commentItems[1].List.Privacy.Should().Be(TraktAccessScope.Public);
                commentItems[1].List.DisplayNumbers.Should().BeTrue();
                commentItems[1].List.AllowComments.Should().BeFalse();
                commentItems[1].List.SortBy.Should().Be("rank");
                commentItems[1].List.SortHow.Should().Be("asc");
                commentItems[1].List.CreatedAt.Should().Be(DateTime.Parse("2014-10-11T17:00:54.000Z").ToUniversalTime());
                commentItems[1].List.UpdatedAt.Should().Be(DateTime.Parse("2014-11-09T17:00:54.000Z").ToUniversalTime());
                commentItems[1].List.ItemCount.Should().Be(5);
                commentItems[1].List.CommentCount.Should().Be(1);
                commentItems[1].List.Likes.Should().Be(2);
                commentItems[1].List.Ids.Should().NotBeNull();
                commentItems[1].List.Ids.Trakt.Should().Be(55U);
                commentItems[1].List.Ids.Slug.Should().Be("star-wars-in-machete-order");
                commentItems[1].List.User.Should().NotBeNull();
                commentItems[1].List.User.Username.Should().Be("sean");
                commentItems[1].List.User.IsPrivate.Should().BeFalse();
                commentItems[1].List.User.Name.Should().Be("Sean Rudford");
                commentItems[1].List.User.IsVIP.Should().BeTrue();
                commentItems[1].List.User.IsVIP_EP.Should().BeFalse();
                commentItems[1].List.User.Ids.Should().NotBeNull();
                commentItems[1].List.User.Ids.Slug.Should().Be("sean");
            }
        }
Example #14
0
        public async Task Test_CollectionShowObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new CollectionShowObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktCollectionShow = await jsonReader.ReadObjectAsync(stream);

                traktCollectionShow.Should().NotBeNull();
                traktCollectionShow.LastCollectedAt.Should().BeNull();

                traktCollectionShow.Show.Should().NotBeNull();
                traktCollectionShow.Show.Title.Should().Be("Game of Thrones");
                traktCollectionShow.Show.Year.Should().Be(2011);
                traktCollectionShow.Show.Ids.Should().NotBeNull();
                traktCollectionShow.Show.Ids.Trakt.Should().Be(1390U);
                traktCollectionShow.Show.Ids.Slug.Should().Be("game-of-thrones");
                traktCollectionShow.Show.Ids.Tvdb.Should().Be(121361U);
                traktCollectionShow.Show.Ids.Imdb.Should().Be("tt0944947");
                traktCollectionShow.Show.Ids.Tmdb.Should().Be(1399U);
                traktCollectionShow.Show.Ids.TvRage.Should().Be(24493U);

                traktCollectionShow.CollectionSeasons.Should().NotBeNull().And.HaveCount(2);
                var seasons = traktCollectionShow.CollectionSeasons.ToArray();

                // Season 1
                seasons[0].Should().NotBeNull();
                seasons[0].Number.Should().Be(1);
                seasons[0].Episodes.Should().NotBeNull();
                seasons[0].Episodes.Should().HaveCount(2);

                // Episodes of Season 1
                var episodesSeason1 = seasons[0].Episodes.ToArray();

                episodesSeason1[0].Should().NotBeNull();
                episodesSeason1[0].Number.Should().Be(1);
                episodesSeason1[0].CollectedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                episodesSeason1[0].Metadata.Should().NotBeNull();
                episodesSeason1[0].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                episodesSeason1[0].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                episodesSeason1[0].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                episodesSeason1[0].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                episodesSeason1[0].Metadata.ThreeDimensional.Should().BeFalse();

                episodesSeason1[1].Should().NotBeNull();
                episodesSeason1[1].Number.Should().Be(2);
                episodesSeason1[1].CollectedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                episodesSeason1[1].Metadata.Should().NotBeNull();
                episodesSeason1[1].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                episodesSeason1[1].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                episodesSeason1[1].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                episodesSeason1[1].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                episodesSeason1[1].Metadata.ThreeDimensional.Should().BeFalse();

                // Season 2
                seasons[1].Should().NotBeNull();
                seasons[1].Number.Should().Be(2);
                seasons[1].Episodes.Should().NotBeNull();
                seasons[1].Episodes.Should().HaveCount(2);

                // Episodes of Season 2
                var episodesSeason2 = seasons[1].Episodes.ToArray();

                episodesSeason2[0].Should().NotBeNull();
                episodesSeason2[0].Number.Should().Be(1);
                episodesSeason2[0].CollectedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                episodesSeason1[0].Metadata.Should().NotBeNull();
                episodesSeason1[0].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                episodesSeason1[0].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                episodesSeason1[0].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                episodesSeason1[0].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                episodesSeason1[0].Metadata.ThreeDimensional.Should().BeFalse();

                episodesSeason2[1].Should().NotBeNull();
                episodesSeason2[1].Number.Should().Be(2);
                episodesSeason2[1].CollectedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                episodesSeason1[1].Metadata.Should().NotBeNull();
                episodesSeason1[1].Metadata.MediaType.Should().Be(TraktMediaType.Digital);
                episodesSeason1[1].Metadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
                episodesSeason1[1].Metadata.Audio.Should().Be(TraktMediaAudio.AAC);
                episodesSeason1[1].Metadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
                episodesSeason1[1].Metadata.ThreeDimensional.Should().BeFalse();
            }
        }
        public async Task Test_CrewArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var jsonReader = new ArrayJsonReader <ITraktCrew>();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                IEnumerable <ITraktCrew> traktCrews = await jsonReader.ReadArrayAsync(stream);

                traktCrews.Should().NotBeNull();
                ITraktCrew[] crews = traktCrews.ToArray();

                crews[0].Production.Should().NotBeNull().And.HaveCount(1);
                ITraktCrewMember[] productionCrew = crews[0].Production.ToArray();

                productionCrew[0].Should().NotBeNull();
                productionCrew[0].Jobs.Should().BeNull();
                productionCrew[0].Person.Should().NotBeNull();
                productionCrew[0].Person.Name.Should().Be("Bryan Cranston");
                productionCrew[0].Person.Ids.Should().NotBeNull();
                productionCrew[0].Person.Ids.Trakt.Should().Be(297737U);
                productionCrew[0].Person.Ids.Slug.Should().Be("bryan-cranston");
                productionCrew[0].Person.Ids.Imdb.Should().Be("nm0186505");
                productionCrew[0].Person.Ids.Tmdb.Should().Be(17419U);
                productionCrew[0].Person.Ids.TvRage.Should().Be(1797U);

                crews[0].Art.Should().BeNull();
                crews[0].Crew.Should().BeNull();
                crews[0].CostumeAndMakeup.Should().BeNull();
                crews[0].Directing.Should().BeNull();
                crews[0].Writing.Should().BeNull();
                crews[0].Sound.Should().BeNull();
                crews[0].Camera.Should().BeNull();
                crews[0].Lighting.Should().BeNull();
                crews[0].VisualEffects.Should().BeNull();
                crews[0].Editing.Should().BeNull();

                crews[1].Production.Should().NotBeNull().And.HaveCount(1);
                productionCrew = crews[1].Production.ToArray();

                productionCrew[0].Should().NotBeNull();
                productionCrew[0].Jobs.Should().NotBeNull().And.HaveCount(1).And.Contain("Producer");
                productionCrew[0].Person.Should().NotBeNull();
                productionCrew[0].Person.Name.Should().Be("Bryan Cranston");
                productionCrew[0].Person.Ids.Should().NotBeNull();
                productionCrew[0].Person.Ids.Trakt.Should().Be(297737U);
                productionCrew[0].Person.Ids.Slug.Should().Be("bryan-cranston");
                productionCrew[0].Person.Ids.Imdb.Should().Be("nm0186505");
                productionCrew[0].Person.Ids.Tmdb.Should().Be(17419U);
                productionCrew[0].Person.Ids.TvRage.Should().Be(1797U);

                crews[1].Art.Should().BeNull();
                crews[1].Crew.Should().BeNull();
                crews[1].CostumeAndMakeup.Should().BeNull();
                crews[1].Directing.Should().BeNull();
                crews[1].Writing.Should().BeNull();
                crews[1].Sound.Should().BeNull();
                crews[1].Camera.Should().BeNull();
                crews[1].Lighting.Should().BeNull();
                crews[1].VisualEffects.Should().BeNull();
                crews[1].Editing.Should().BeNull();
            }
        }
        public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Stream_Not_Valid_1()
        {
            var traktJsonReader = new ArrayJsonReader <ITraktSeasonWatchedProgress>();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktSeasonWatchedProgresses = await traktJsonReader.ReadArrayAsync(stream);

                traktSeasonWatchedProgresses.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(3);

                var watchedProgresses = traktSeasonWatchedProgresses.ToArray();

                watchedProgresses[0].Number.Should().BeNull();
                watchedProgresses[0].Aired.Should().Be(3);
                watchedProgresses[0].Completed.Should().Be(2);
                watchedProgresses[0].Episodes.Should().NotBeNull().And.HaveCount(2);

                var episodesWatchedProgress = watchedProgresses[0].Episodes.ToArray();

                episodesWatchedProgress[0].Should().NotBeNull();
                episodesWatchedProgress[0].Number.Should().Be(1);
                episodesWatchedProgress[0].Completed.Should().BeTrue();
                episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime());

                episodesWatchedProgress[1].Should().NotBeNull();
                episodesWatchedProgress[1].Number.Should().Be(2);
                episodesWatchedProgress[1].Completed.Should().BeTrue();
                episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime());

                // -----------------------------------------------

                watchedProgresses[1].Number.Should().Be(2);
                watchedProgresses[1].Aired.Should().Be(3);
                watchedProgresses[1].Completed.Should().Be(2);
                watchedProgresses[1].Episodes.Should().NotBeNull().And.HaveCount(2);

                episodesWatchedProgress = watchedProgresses[1].Episodes.ToArray();

                episodesWatchedProgress[0].Should().NotBeNull();
                episodesWatchedProgress[0].Number.Should().Be(1);
                episodesWatchedProgress[0].Completed.Should().BeTrue();
                episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime());

                episodesWatchedProgress[1].Should().NotBeNull();
                episodesWatchedProgress[1].Number.Should().Be(2);
                episodesWatchedProgress[1].Completed.Should().BeTrue();
                episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime());

                // -----------------------------------------------

                watchedProgresses[2].Number.Should().Be(3);
                watchedProgresses[2].Aired.Should().Be(3);
                watchedProgresses[2].Completed.Should().Be(2);
                watchedProgresses[2].Episodes.Should().NotBeNull().And.HaveCount(2);

                episodesWatchedProgress = watchedProgresses[2].Episodes.ToArray();

                episodesWatchedProgress[0].Should().NotBeNull();
                episodesWatchedProgress[0].Number.Should().Be(1);
                episodesWatchedProgress[0].Completed.Should().BeTrue();
                episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime());

                episodesWatchedProgress[1].Should().NotBeNull();
                episodesWatchedProgress[1].Number.Should().Be(2);
                episodesWatchedProgress[1].Completed.Should().BeTrue();
                episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime());
            }
        }
Example #17
0
        public async Task Test_WatchedShowObjectJsonReader_ReadObject_From_Stream_Not_Valid_1()
        {
            var jsonReader = new WatchedShowObjectJsonReader();

            using (var stream = JSON_NOT_VALID_1.ToStream())
            {
                var traktWatchedShow = await jsonReader.ReadObjectAsync(stream);

                traktWatchedShow.Should().NotBeNull();
                traktWatchedShow.Plays.Should().BeNull();
                traktWatchedShow.LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                traktWatchedShow.LastUpdatedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
                traktWatchedShow.ResetAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());

                traktWatchedShow.Show.Should().NotBeNull();
                traktWatchedShow.Show.Title.Should().Be("Game of Thrones");
                traktWatchedShow.Show.Year.Should().Be(2011);
                traktWatchedShow.Show.Ids.Should().NotBeNull();
                traktWatchedShow.Show.Ids.Trakt.Should().Be(1390U);
                traktWatchedShow.Show.Ids.Slug.Should().Be("game-of-thrones");
                traktWatchedShow.Show.Ids.Tvdb.Should().Be(121361U);
                traktWatchedShow.Show.Ids.Imdb.Should().Be("tt0944947");
                traktWatchedShow.Show.Ids.Tmdb.Should().Be(1399U);
                traktWatchedShow.Show.Ids.TvRage.Should().Be(24493U);

                traktWatchedShow.WatchedSeasons.Should().NotBeNull().And.HaveCount(2);
                var seasons = traktWatchedShow.WatchedSeasons.ToArray();

                seasons[0].Should().NotBeNull();
                seasons[0].Number.Should().Be(1);
                seasons[0].Episodes.Should().NotBeNull().And.HaveCount(2);

                var episodes = seasons[0].Episodes.ToArray();

                episodes[0].Should().NotBeNull();
                episodes[0].Number.Should().Be(1);
                episodes[0].Plays.Should().Be(1);
                episodes[0].LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());

                episodes[1].Should().NotBeNull();
                episodes[1].Number.Should().Be(2);
                episodes[1].Plays.Should().Be(1);
                episodes[1].LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());

                seasons[1].Should().NotBeNull();
                seasons[1].Number.Should().Be(2);
                seasons[1].Episodes.Should().NotBeNull().And.HaveCount(2);

                episodes = seasons[1].Episodes.ToArray();

                episodes[0].Should().NotBeNull();
                episodes[0].Number.Should().Be(1);
                episodes[0].Plays.Should().Be(1);
                episodes[0].LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());

                episodes[1].Should().NotBeNull();
                episodes[1].Number.Should().Be(2);
                episodes[1].Plays.Should().Be(1);
                episodes[1].LastWatchedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
            }
        }