public void Test_TraktPost_SyncRatingsPostBuilder_AddShowAndSeasons()
        {
            ITraktShow show = new TraktShow
            {
                Title = "show title",
                Year  = 2020,
                Ids   = new TraktShowIds
                {
                    Trakt  = 1,
                    Slug   = "show-title",
                    Imdb   = "ttshowtitle",
                    Tmdb   = 1,
                    Tvdb   = 1,
                    TvRage = 1
                }
            };

            ITraktSyncRatingsPost syncRatingsPost = TraktPost.NewSyncRatingsPost()
                                                    .AddShowAndSeasons(show).WithSeasons(1, 2, 3)
                                                    .Build();

            syncRatingsPost.Should().NotBeNull();
            syncRatingsPost.Shows.Should().NotBeNull().And.HaveCount(1);

            ITraktSyncRatingsPostShow postShow = syncRatingsPost.Shows.ToArray()[0];

            postShow.Title = "show title";
            postShow.Year  = 2020;
            postShow.Ids.Should().NotBeNull();
            postShow.Ids.Trakt.Should().Be(1U);
            postShow.Ids.Slug.Should().Be("show-title");
            postShow.Ids.Imdb.Should().Be("ttshowtitle");
            postShow.Ids.Tmdb.Should().Be(1U);
            postShow.Ids.Tvdb.Should().Be(1U);
            postShow.Ids.TvRage.Should().Be(1U);
            postShow.Rating.Should().BeNull();
            postShow.RatedAt.Should().BeNull();
            postShow.Seasons.Should().NotBeNull().And.HaveCount(3);

            ITraktSyncRatingsPostShowSeason[] seasons = postShow.Seasons.ToArray();

            seasons[0].Number.Should().Be(1);
            seasons[0].Episodes.Should().BeNull();

            seasons[1].Number.Should().Be(2);
            seasons[1].Episodes.Should().BeNull();

            seasons[2].Number.Should().Be(3);
            seasons[2].Episodes.Should().BeNull();

            syncRatingsPost.Movies.Should().NotBeNull().And.BeEmpty();
            syncRatingsPost.Episodes.Should().NotBeNull().And.BeEmpty();
        }
        public void Test_TraktPost_SyncRatingsPostBuilder_AddRatedShow_And_RatedAt()
        {
            ITraktShow show = new TraktShow
            {
                Title = "show title",
                Year  = 2020,
                Ids   = new TraktShowIds
                {
                    Trakt  = 1,
                    Slug   = "show-title",
                    Imdb   = "ttshowtitle",
                    Tmdb   = 1,
                    Tvdb   = 1,
                    TvRage = 1
                }
            };

            ITraktSyncRatingsPost syncRatingsPost = TraktPost.NewSyncRatingsPost()
                                                    .AddRatedShow(show).WithRating(RATING, RATED_AT)
                                                    .Build();

            syncRatingsPost.Should().NotBeNull();
            syncRatingsPost.Shows.Should().NotBeNull().And.HaveCount(1);

            ITraktSyncRatingsPostShow postShow = syncRatingsPost.Shows.ToArray()[0];

            postShow.Title = "show title";
            postShow.Year  = 2020;
            postShow.Ids.Should().NotBeNull();
            postShow.Ids.Trakt.Should().Be(1U);
            postShow.Ids.Slug.Should().Be("show-title");
            postShow.Ids.Imdb.Should().Be("ttshowtitle");
            postShow.Ids.Tmdb.Should().Be(1U);
            postShow.Ids.Tvdb.Should().Be(1U);
            postShow.Ids.TvRage.Should().Be(1U);
            postShow.Rating.Should().Be(RATING);
            postShow.RatedAt.Should().Be(RATED_AT);
            postShow.Seasons.Should().BeNull();

            syncRatingsPost.Movies.Should().NotBeNull().And.BeEmpty();
            syncRatingsPost.Episodes.Should().NotBeNull().And.BeEmpty();
        }
        public void Test_TraktPost_SyncRatingsPostBuilder_AddRatedShowAndSeasonsCollection_And_RatedAt()
        {
            ITraktShow show = new TraktShow
            {
                Title = "show title",
                Year  = 2020,
                Ids   = new TraktShowIds
                {
                    Trakt  = 1,
                    Slug   = "show-title",
                    Imdb   = "ttshowtitle",
                    Tmdb   = 1,
                    Tvdb   = 1,
                    TvRage = 1
                }
            };

            var seasons = new PostRatingsSeasons
            {
                1,
                { 2, new PostRatingsEpisodes {
                      1, 2
                  } }
            };

            ITraktSyncRatingsPost syncRatingsPost = TraktPost.NewSyncRatingsPost()
                                                    .AddRatedShowAndSeasonsCollection(show).WithRating(RATING, RATED_AT, seasons)
                                                    .Build();

            syncRatingsPost.Should().NotBeNull();
            syncRatingsPost.Shows.Should().NotBeNull().And.HaveCount(1);

            ITraktSyncRatingsPostShow postShow = syncRatingsPost.Shows.ToArray()[0];

            postShow.Title = "show title";
            postShow.Year  = 2020;
            postShow.Ids.Should().NotBeNull();
            postShow.Ids.Trakt.Should().Be(1U);
            postShow.Ids.Slug.Should().Be("show-title");
            postShow.Ids.Imdb.Should().Be("ttshowtitle");
            postShow.Ids.Tmdb.Should().Be(1U);
            postShow.Ids.Tvdb.Should().Be(1U);
            postShow.Ids.TvRage.Should().Be(1U);
            postShow.Rating.Should().Be(RATING);
            postShow.RatedAt.Should().Be(RATED_AT);
            postShow.Seasons.Should().NotBeNull().And.HaveCount(2);

            ITraktSyncRatingsPostShowSeason[] showSeasons = postShow.Seasons.ToArray();

            showSeasons[0].Number.Should().Be(1);
            showSeasons[0].Episodes.Should().BeNull();

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

            ITraktSyncRatingsPostShowEpisode[] showSeasonEpisodes = showSeasons[1].Episodes.ToArray();

            showSeasonEpisodes[0].Number.Should().Be(1);
            showSeasonEpisodes[1].Number.Should().Be(2);

            syncRatingsPost.Movies.Should().NotBeNull().And.BeEmpty();
            syncRatingsPost.Episodes.Should().NotBeNull().And.BeEmpty();
        }