Example #1
0
        public void TestTraktUserHiddenItemsPostDefaultConstructor()
        {
            var hiddenItems = new TraktUserHiddenItemsPost();

            hiddenItems.Movies.Should().BeNull();
            hiddenItems.Shows.Should().BeNull();
            hiddenItems.Seasons.Should().BeNull();
        }
Example #2
0
        public ITraktUserHiddenItemsPost Build()
        {
            ITraktUserHiddenItemsPost userHiddenItemsPost = new TraktUserHiddenItemsPost();

            AddMovies(userHiddenItemsPost);
            AddShows(userHiddenItemsPost);
            AddSeasons(userHiddenItemsPost);
            return(userHiddenItemsPost);
        }
        public override async Task <ITraktUserHiddenItemsPost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktUserHiddenItemsPost)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var movieArrayJsonReader  = new UserHiddenItemsPostMovieArrayJsonReader();
                var showArrayJsonReader   = new UserHiddenItemsPostShowArrayJsonReader();
                var seasonArrayJsonReader = new UserHiddenItemsPostSeasonArrayJsonReader();
                ITraktUserHiddenItemsPost hiddenItemsPost = new TraktUserHiddenItemsPost();

                while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName)
                {
                    var propertyName = jsonReader.Value.ToString();

                    switch (propertyName)
                    {
                    case JsonProperties.USER_HIDDEN_ITEMS_POST_PROPERTY_NAME_MOVIES:
                        hiddenItemsPost.Movies = await movieArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.USER_HIDDEN_ITEMS_POST_PROPERTY_NAME_SHOWS:
                        hiddenItemsPost.Shows = await showArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.USER_HIDDEN_ITEMS_POST_PROPERTY_NAME_SEASONS:
                        hiddenItemsPost.Seasons = await seasonArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken);

                        break;

                    default:
                        await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken);

                        break;
                    }
                }

                return(hiddenItemsPost);
            }

            return(await Task.FromResult(default(ITraktUserHiddenItemsPost)));
        }
Example #4
0
        public void TestTraktUserHiddenItemsPostWriteJson()
        {
            var hiddenItems = new TraktUserHiddenItemsPost
            {
                Movies = new List <TraktUserHiddenItemsPostMovie>()
                {
                    new TraktUserHiddenItemsPostMovie
                    {
                        Title = "Batman Begins",
                        Year  = 2005,
                        Ids   = new TraktMovieIds
                        {
                            Trakt = 1,
                            Slug  = "batman-begins-2005",
                            Imdb  = "tt0372784",
                            Tmdb  = 272
                        }
                    },
                    new TraktUserHiddenItemsPostMovie
                    {
                        Ids = new TraktMovieIds
                        {
                            Imdb = "tt0000111"
                        }
                    }
                },
                Shows = new List <TraktUserHiddenItemsPostShow>()
                {
                    new TraktUserHiddenItemsPostShow
                    {
                        Title = "Breaking Bad",
                        Year  = 2008,
                        Ids   = new TraktShowIds
                        {
                            Trakt  = 1,
                            Slug   = "breaking-bad",
                            Tvdb   = 81189,
                            Imdb   = "tt0903747",
                            Tmdb   = 1396,
                            TvRage = 18164
                        }
                    },
                    new TraktUserHiddenItemsPostShow
                    {
                        Title = "The Walking Dead",
                        Year  = 2010,
                        Ids   = new TraktShowIds
                        {
                            Trakt  = 2,
                            Slug   = "the-walking-dead",
                            Tvdb   = 153021,
                            Imdb   = "tt1520211",
                            Tmdb   = 1402,
                            TvRage = 25056
                        },
                        Seasons = new List <TraktUserHiddenItemsPostShowSeason>()
                        {
                            new TraktUserHiddenItemsPostShowSeason
                            {
                                Number = 3
                            }
                        }
                    },
                    new TraktUserHiddenItemsPostShow
                    {
                        Title = "Mad Men",
                        Year  = 2007,
                        Ids   = new TraktShowIds
                        {
                            Trakt  = 4,
                            Slug   = "mad-men",
                            Tvdb   = 80337,
                            Imdb   = "tt0804503",
                            Tmdb   = 1104,
                            TvRage = 16356
                        },
                        Seasons = new List <TraktUserHiddenItemsPostShowSeason>()
                        {
                            new TraktUserHiddenItemsPostShowSeason
                            {
                                Number = 1
                            }
                        }
                    }
                },
                Seasons = new List <TraktUserHiddenItemsPostSeason>()
                {
                    new TraktUserHiddenItemsPostSeason
                    {
                        Ids = new TraktSeasonIds
                        {
                            Trakt  = 1061,
                            Tvdb   = 1555111,
                            Tmdb   = 422183,
                            TvRage = 12345
                        }
                    }
                }
            };

            var strJson = JsonConvert.SerializeObject(hiddenItems);

            strJson.Should().NotBeNullOrEmpty();

            var hiddenItemsPostFromJson = JsonConvert.DeserializeObject <TraktUserHiddenItemsPost>(strJson);

            hiddenItemsPostFromJson.Should().NotBeNull();

            hiddenItemsPostFromJson.Movies.Should().NotBeNull().And.HaveCount(2);
            hiddenItemsPostFromJson.Shows.Should().NotBeNull().And.HaveCount(3);
            hiddenItemsPostFromJson.Seasons.Should().NotBeNull().And.HaveCount(1);

            var movies = hiddenItemsPostFromJson.Movies.ToArray();

            movies[0].Title.Should().Be("Batman Begins");
            movies[0].Year.Should().Be(2005);
            movies[0].Ids.Should().NotBeNull();
            movies[0].Ids.Trakt.Should().Be(1U);
            movies[0].Ids.Slug.Should().Be("batman-begins-2005");
            movies[0].Ids.Imdb.Should().Be("tt0372784");
            movies[0].Ids.Tmdb.Should().Be(272U);

            movies[1].Title.Should().BeNullOrEmpty();
            movies[1].Year.Should().NotHaveValue();
            movies[1].Ids.Should().NotBeNull();
            movies[1].Ids.Trakt.Should().Be(0U);
            movies[1].Ids.Slug.Should().BeNullOrEmpty();
            movies[1].Ids.Imdb.Should().Be("tt0000111");
            movies[1].Ids.Tmdb.Should().BeNull();

            var shows = hiddenItemsPostFromJson.Shows.ToArray();

            shows[0].Title.Should().Be("Breaking Bad");
            shows[0].Year.Should().Be(2008);
            shows[0].Ids.Should().NotBeNull();
            shows[0].Ids.Trakt.Should().Be(1U);
            shows[0].Ids.Slug.Should().Be("breaking-bad");
            shows[0].Ids.Tvdb.Should().Be(81189U);
            shows[0].Ids.Imdb.Should().Be("tt0903747");
            shows[0].Ids.Tmdb.Should().Be(1396U);
            shows[0].Ids.TvRage.Should().Be(18164U);
            shows[0].Seasons.Should().BeNull();

            shows[1].Title.Should().Be("The Walking Dead");
            shows[1].Year.Should().Be(2010);
            shows[1].Ids.Should().NotBeNull();
            shows[1].Ids.Trakt.Should().Be(2U);
            shows[1].Ids.Slug.Should().Be("the-walking-dead");
            shows[1].Ids.Tvdb.Should().Be(153021U);
            shows[1].Ids.Imdb.Should().Be("tt1520211");
            shows[1].Ids.Tmdb.Should().Be(1402U);
            shows[1].Ids.TvRage.Should().Be(25056U);
            shows[1].Seasons.Should().NotBeNull().And.HaveCount(1);

            var show2Seasons = shows[1].Seasons.ToArray();

            show2Seasons[0].Number.Should().Be(3);

            shows[2].Title.Should().Be("Mad Men");
            shows[2].Year.Should().Be(2007);
            shows[2].Ids.Should().NotBeNull();
            shows[2].Ids.Trakt.Should().Be(4U);
            shows[2].Ids.Slug.Should().Be("mad-men");
            shows[2].Ids.Tvdb.Should().Be(80337U);
            shows[2].Ids.Imdb.Should().Be("tt0804503");
            shows[2].Ids.Tmdb.Should().Be(1104U);
            shows[2].Ids.TvRage.Should().Be(16356U);
            shows[2].Seasons.Should().NotBeNull().And.HaveCount(1);

            var show3Seasons = shows[2].Seasons.ToArray();

            show3Seasons[0].Number.Should().Be(1);

            var seassons = hiddenItemsPostFromJson.Seasons.ToArray();

            seassons[0].Ids.Should().NotBeNull();
            seassons[0].Ids.Trakt.Should().Be(1061U);
            seassons[0].Ids.Tvdb.Should().Be(1555111U);
            seassons[0].Ids.Tmdb.Should().Be(422183U);
            seassons[0].Ids.TvRage.Should().Be(12345U);
        }