コード例 #1
0
        public async Task Test_MetadataArrayJsonWriter_WriteArray_JsonWriter_Empty()
        {
            IEnumerable <ITraktMetadata> traktMetadata = new List <TraktMetadata>();

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktMetadata>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktMetadata);

                    stringWriter.ToString().Should().Be("[]");
                }
        }
コード例 #2
0
        public async Task Test_CollectionMovieArrayJsonWriter_WriteArray_JsonWriter_Empty()
        {
            IEnumerable <ITraktCollectionMovie> traktCollectionMovies = new List <TraktCollectionMovie>();

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktCollectionMovie>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCollectionMovies);

                    stringWriter.ToString().Should().Be("[]");
                }
        }
        public async Task Test_SeasonWatchedProgressArrayJsonWriter_WriteArray_JsonWriter_Empty()
        {
            IEnumerable <ITraktSeasonWatchedProgress> traktSeasonWatchedProgresses = new List <TraktSeasonWatchedProgress>();

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktSeasonWatchedProgress>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktSeasonWatchedProgresses);

                    stringWriter.ToString().Should().Be("[]");
                }
        }
コード例 #4
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktWatchedShow obj, CancellationToken cancellationToken = default)
        {
            CheckJsonTextWriter(jsonWriter);
            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.Plays.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_PLAYS, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Plays, cancellationToken).ConfigureAwait(false);
            }

            if (obj.LastWatchedAt.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_LAST_WATCHED_AT, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.LastWatchedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false);
            }

            if (obj.LastUpdatedAt.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_LAST_UPDATED_AT, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.LastUpdatedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false);
            }

            if (obj.ResetAt.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RESET_AT, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.ResetAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false);
            }

            if (obj.Show != null)
            {
                var showObjectJsonWriter = new ShowObjectJsonWriter();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SHOW, cancellationToken).ConfigureAwait(false);

                await showObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Show, cancellationToken).ConfigureAwait(false);
            }

            if (obj.WatchedSeasons != null)
            {
                var watchedShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktWatchedShowSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await watchedShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.WatchedSeasons, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
        public async Task Test_CommentLikeArrayJsonWriter_WriteArray_StringWriter_Complete()
        {
            IEnumerable <ITraktCommentLike> traktCommentLikes = new List <ITraktCommentLike>
            {
                new TraktCommentLike
                {
                    LikedAt = LIKED_AT,
                    User    = new TraktUser
                    {
                        Username  = "******",
                        IsPrivate = false,
                        Name      = "Sean Rudford",
                        IsVIP     = true,
                        IsVIP_EP  = true,
                        Ids       = new TraktUserIds
                        {
                            Slug = "sean"
                        }
                    }
                },
                new TraktCommentLike
                {
                    LikedAt = LIKED_AT,
                    User    = new TraktUser
                    {
                        Username  = "******",
                        IsPrivate = false,
                        Name      = "Sean Rudford",
                        IsVIP     = true,
                        IsVIP_EP  = true,
                        Ids       = new TraktUserIds
                        {
                            Slug = "sean"
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktCommentLike>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCommentLikes);

                json.Should().Be($"[{{\"liked_at\":\"{LIKED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," +
                                 @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}," +
                                 $"{{\"liked_at\":\"{LIKED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," +
                                 @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}]");
            }
        }
コード例 #6
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncRatingsPostShow obj, CancellationToken cancellationToken = default)
        {
            CheckJsonTextWriter(jsonWriter);
            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.RatedAt.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RATED_AT, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.RatedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false);
            }

            if (obj.Rating.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RATING, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Rating, cancellationToken).ConfigureAwait(false);
            }

            if (!string.IsNullOrEmpty(obj.Title))
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_TITLE, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Title, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Year.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_YEAR, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Year, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Ids != null)
            {
                var showIdsObjectJsonWriter = new ShowIdsObjectJsonWriter();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_IDS, cancellationToken).ConfigureAwait(false);

                await showIdsObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Ids, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Seasons != null)
            {
                var syncRatingsPostShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostShowSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await syncRatingsPostShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktUserCustomListItemsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default)
        {
            if (jsonWriter == null)
            {
                throw new ArgumentNullException(nameof(jsonWriter));
            }

            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.Movies != null)
            {
                var notFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundMovie>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false);

                await notFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Shows != null)
            {
                var notFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundShow>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false);

                await notFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Seasons != null)
            {
                var notFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await notFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Episodes != null)
            {
                var notFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundEpisode>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false);

                await notFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false);
            }

            if (obj.People != null)
            {
                var notFoundPersonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundPerson>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_PEOPLE, cancellationToken).ConfigureAwait(false);

                await notFoundPersonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.People, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #8
0
        public async Task Test_NetworkArrayJsonWriter_WriteArray_Array_SingleObject()
        {
            IEnumerable<ITraktNetwork> traktNetworks = new List<ITraktNetwork>
            {
                new TraktNetwork
                {
                    Network = "network 1"
                }
            };

            var traktJsonWriter = new ArrayJsonWriter<ITraktNetwork>();
            string json = await traktJsonWriter.WriteArrayAsync(traktNetworks);
            json.Should().Be(@"[{""network"":""network 1""}]");
        }
コード例 #9
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktCertifications obj, CancellationToken cancellationToken = default)
        {
            CheckJsonTextWriter(jsonWriter);
            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.US != null)
            {
                var certificationArrayJsonWriter = new ArrayJsonWriter <ITraktCertification>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_US, cancellationToken).ConfigureAwait(false);

                await certificationArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.US, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #10
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncHistoryPostShow obj, CancellationToken cancellationToken = default)
        {
            if (jsonWriter == null)
            {
                throw new ArgumentNullException(nameof(jsonWriter));
            }

            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.WatchedAt.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_WATCHED_AT, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.WatchedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false);
            }

            if (!string.IsNullOrEmpty(obj.Title))
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_TITLE, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Title, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Year.HasValue)
            {
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_YEAR, cancellationToken).ConfigureAwait(false);

                await jsonWriter.WriteValueAsync(obj.Year, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Ids != null)
            {
                var showIdsObjectJsonWriter = new ShowIdsObjectJsonWriter();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_IDS, cancellationToken).ConfigureAwait(false);

                await showIdsObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Ids, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Seasons != null)
            {
                var syncHistoryPostShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncHistoryPostShowSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await syncHistoryPostShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #11
0
        public async Task Test_GenreArrayJsonWriter_WriteArray_Array_SingleObject()
        {
            IEnumerable <ITraktGenre> traktGenres = new List <ITraktGenre>
            {
                new TraktGenre
                {
                    Name = "genre name 1",
                    Slug = "genre slug 1"
                }
            };

            var    traktJsonWriter = new ArrayJsonWriter <ITraktGenre>();
            string json            = await traktJsonWriter.WriteArrayAsync(traktGenres);

            json.Should().Be(@"[{""name"":""genre name 1"",""slug"":""genre slug 1""}]");
        }
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktUserCustomListItemsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default)
        {
            CheckJsonTextWriter(jsonWriter);
            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.Movies != null)
            {
                var notFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundMovie>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false);

                await notFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Shows != null)
            {
                var notFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundShow>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false);

                await notFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Seasons != null)
            {
                var notFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await notFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Episodes != null)
            {
                var notFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundEpisode>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false);

                await notFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false);
            }

            if (obj.People != null)
            {
                var notFoundPersonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundPerson>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_PEOPLE, cancellationToken).ConfigureAwait(false);

                await notFoundPersonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.People, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #13
0
        public async Task Test_CertificationArrayJsonWriter_WriteArray_Array_SingleObject()
        {
            IEnumerable <ITraktCertification> traktCertifications = new List <ITraktCertification>
            {
                new TraktCertification
                {
                    Name        = "certification name 1",
                    Slug        = "certification slug 1",
                    Description = "certification description 1"
                }
            };

            var    traktJsonWriter = new ArrayJsonWriter <ITraktCertification>();
            string json            = await traktJsonWriter.WriteArrayAsync(traktCertifications);

            json.Should().Be(@"[{""name"":""certification name 1"",""slug"":""certification slug 1"",""description"":""certification description 1""}]");
        }
コード例 #14
0
        public async Task Test_CommentArrayJsonWriter_WriteArray_JsonWriter_SingleObject()
        {
            IEnumerable <ITraktComment> traktComments = new List <ITraktComment>
            {
                new TraktComment
                {
                    Id         = 76957U,
                    ParentId   = 1234U,
                    CreatedAt  = CREATED_UPDATED_AT,
                    UpdatedAt  = CREATED_UPDATED_AT,
                    Comment    = "I hate they made The flash a kids show. Could else be much better. And with a better flash offcourse.",
                    Spoiler    = true,
                    Review     = true,
                    Replies    = 1,
                    Likes      = 2,
                    UserRating = 7.3f,
                    User       = new TraktUser
                    {
                        Username  = "******",
                        IsPrivate = false,
                        Name      = "Sean Rudford",
                        IsVIP     = true,
                        IsVIP_EP  = true,
                        Ids       = new TraktUserIds
                        {
                            Slug = "sean"
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktComment>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktComments);

                    stringWriter.ToString().Should().Be(@"[{""id"":76957,""parent_id"":1234," +
                                                        $"\"created_at\":\"{CREATED_UPDATED_AT.ToTraktLongDateTimeString()}\"," +
                                                        $"\"updated_at\":\"{CREATED_UPDATED_AT.ToTraktLongDateTimeString()}\"," +
                                                        @"""comment"":""I hate they made The flash a kids show. Could else be much better. And with a better flash offcourse.""," +
                                                        @"""spoiler"":true,""review"":true,""replies"":1,""likes"":2,""user_rating"":7.3," +
                                                        @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," +
                                                        @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}]");
                }
        }
コード例 #15
0
        public async Task Test_EpisodeTranslationArrayJsonWriter_WriteArray_Array_SingleObject()
        {
            IEnumerable <ITraktEpisodeTranslation> traktEpisodeTranslations = new List <ITraktEpisodeTranslation>
            {
                new TraktEpisodeTranslation
                {
                    Title        = "title 1",
                    Overview     = "overview 1",
                    LanguageCode = "language code 1"
                }
            };

            var    traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeTranslation>();
            string json            = await traktJsonWriter.WriteArrayAsync(traktEpisodeTranslations);

            json.Should().Be(@"[{""title"":""title 1"",""overview"":""overview 1"",""language"":""language code 1""}]");
        }
コード例 #16
0
        public async Task Test_CastMemberArrayJsonWriter_WriteArray_JsonWriter_Complete()
        {
            IEnumerable <ITraktCastMember> traktCastMembers = new List <ITraktCastMember>
            {
                new TraktCastMember
                {
                    Characters = new List <string>
                    {
                        "Character 1"
                    },
                    Person = new TraktPerson
                    {
                        Name = "Person 1",
                        Ids  = new TraktPersonIds
                        {
                            Slug = "person-1"
                        }
                    }
                },
                new TraktCastMember
                {
                    Characters = new List <string>
                    {
                        "Character 2"
                    },
                    Person = new TraktPerson
                    {
                        Name = "Person 2",
                        Ids  = new TraktPersonIds
                        {
                            Slug = "person-2"
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktCastMember>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCastMembers);

                    stringWriter.ToString().Should().Be(@"[{""characters"":[""Character 1""],""person"":{""name"":""Person 1"",""ids"":{""trakt"":0,""slug"":""person-1""}}}," +
                                                        @"{""characters"":[""Character 2""],""person"":{""name"":""Person 2"",""ids"":{""trakt"":0,""slug"":""person-2""}}}]");
                }
        }
コード例 #17
0
        public async Task Test_EpisodeWatchedProgressArrayJsonWriter_WriteArray_Array_SingleObject()
        {
            IEnumerable <ITraktEpisodeWatchedProgress> traktEpisodeWatchedProgresss = new List <ITraktEpisodeWatchedProgress>
            {
                new TraktEpisodeWatchedProgress
                {
                    Number        = 1,
                    Completed     = true,
                    LastWatchedAt = LAST_WATCHED_AT
                }
            };

            var    traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeWatchedProgress>();
            string json            = await traktJsonWriter.WriteArrayAsync(traktEpisodeWatchedProgresss);

            json.Should().Be($"[{{\"number\":1,\"completed\":true,\"last_watched_at\":\"{LAST_WATCHED_AT.ToTraktLongDateTimeString()}\"}}]");
        }
        public async Task Test_NetworkArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktNetwork> traktNetworks = new List <ITraktNetwork>
            {
                new TraktNetwork
                {
                    Name = "network 1"
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktNetwork>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktNetworks);

                json.Should().Be(@"[{""name"":""network 1""}]");
            }
        }
        public async Task Test_ImageArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktImage> traktImage = new List <ITraktImage>
            {
                new TraktImage
                {
                    Full = "fullPath 1"
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktImage>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktImage);

                json.Should().Be(@"[{""full"":""fullPath 1""}]");
            }
        }
コード例 #20
0
        public async Task Test_DeviceArrayJsonWriter_WriteArray_JsonWriter_Complete()
        {
            IEnumerable <ITraktDevice> traktDevices = new List <ITraktDevice>
            {
                new TraktDevice
                {
                    DeviceCode        = "mockDeviceCode1",
                    UserCode          = "mockUserCode1",
                    VerificationUrl   = "mockUrl1",
                    ExpiresInSeconds  = 7200,
                    IntervalInSeconds = 600
                },
                new TraktDevice
                {
                    DeviceCode        = "mockDeviceCode2",
                    UserCode          = "mockUserCode2",
                    VerificationUrl   = "mockUrl2",
                    ExpiresInSeconds  = 7200,
                    IntervalInSeconds = 600
                },
                new TraktDevice
                {
                    DeviceCode        = "mockDeviceCode3",
                    UserCode          = "mockUserCode3",
                    VerificationUrl   = "mockUrl3",
                    ExpiresInSeconds  = 7200,
                    IntervalInSeconds = 600
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktDevice>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktDevices);

                    stringWriter.ToString().Should().Be(@"[{""device_code"":""mockDeviceCode1"",""user_code"":""mockUserCode1""," +
                                                        @"""verification_url"":""mockUrl1"",""expires_in"":7200,""interval"":600}," +
                                                        @"{""device_code"":""mockDeviceCode2"",""user_code"":""mockUserCode2""," +
                                                        @"""verification_url"":""mockUrl2"",""expires_in"":7200,""interval"":600}," +
                                                        @"{""device_code"":""mockDeviceCode3"",""user_code"":""mockUserCode3""," +
                                                        @"""verification_url"":""mockUrl3"",""expires_in"":7200,""interval"":600}]");
                }
        }
        public async Task Test_EpisodeIdsArrayJsonWriter_WriteArray_JsonWriter_Complete()
        {
            IEnumerable <ITraktEpisodeIds> traktEpisodeIds = new List <ITraktEpisodeIds>
            {
                new TraktEpisodeIds
                {
                    Trakt  = 123,
                    Tvdb   = 456,
                    Imdb   = "ids imdb",
                    Tmdb   = 789,
                    TvRage = 101
                },
                new TraktEpisodeIds
                {
                    Trakt  = 123,
                    Tvdb   = 456,
                    Imdb   = "ids imdb",
                    Tmdb   = 789,
                    TvRage = 101
                },
                new TraktEpisodeIds
                {
                    Trakt  = 123,
                    Tvdb   = 456,
                    Imdb   = "ids imdb",
                    Tmdb   = 789,
                    TvRage = 101
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeIds>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktEpisodeIds);

                    stringWriter.ToString().Should().Be(@"[{""trakt"":123,""tvdb"":456," +
                                                        @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}," +
                                                        @"{""trakt"":123,""tvdb"":456," +
                                                        @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}," +
                                                        @"{""trakt"":123,""tvdb"":456," +
                                                        @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}]");
                }
        }
コード例 #22
0
        public async Task Test_CollectionMovieArrayJsonWriter_WriteArray_JsonWriter_SingleObject()
        {
            IEnumerable <ITraktCollectionMovie> traktCollectionMovies = new List <ITraktCollectionMovie>
            {
                new TraktCollectionMovie
                {
                    CollectedAt = COLLECTED_AT,
                    Metadata    = new TraktMetadata
                    {
                        MediaType        = TraktMediaType.Bluray,
                        MediaResolution  = TraktMediaResolution.HD_1080p,
                        Audio            = TraktMediaAudio.DTS,
                        AudioChannels    = TraktMediaAudioChannel.Channels_6_1,
                        ThreeDimensional = false
                    },
                    Movie = new TraktMovie
                    {
                        Title = "Star Wars: The Force Awakens",
                        Year  = 2015,
                        Ids   = new TraktMovieIds
                        {
                            Trakt = 94024U,
                            Slug  = "star-wars-the-force-awakens-2015",
                            Imdb  = "tt2488496",
                            Tmdb  = 140607U
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktCollectionMovie>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCollectionMovies);

                    stringWriter.ToString().Should().Be($"[{{\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                                        @"""movie"":{""title"":""Star Wars: The Force Awakens"",""year"":2015," +
                                                        @"""ids"":{""trakt"":94024,""slug"":""star-wars-the-force-awakens-2015""," +
                                                        @"""imdb"":""tt2488496"",""tmdb"":140607}}," +
                                                        @"""metadata"":{""media_type"":""bluray"",""resolution"":""hd_1080p""," +
                                                        @"""audio"":""dts"",""audio_channels"":""6.1"",""3d"":false}}]");
                }
        }
        public async Task Test_LanguageArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktLanguage> traktLanguages = new List <ITraktLanguage>
            {
                new TraktLanguage
                {
                    Name = "English",
                    Code = "en"
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktLanguage>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktLanguages);

                json.Should().Be(@"[{""name"":""English"",""code"":""en""}]");
            }
        }
コード例 #24
0
        public async Task Test_NetworkArrayJsonWriter_WriteArray_JsonWriter_SingleObject()
        {
            IEnumerable <ITraktNetwork> traktNetworks = new List <ITraktNetwork>
            {
                new TraktNetwork
                {
                    Network = "network 1"
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktNetwork>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktNetworks);

                    stringWriter.ToString().Should().Be(@"[{""network"":""network 1""}]");
                }
        }
コード例 #25
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncWatchlistPostShowSeason obj, CancellationToken cancellationToken = default)
        {
            CheckJsonTextWriter(jsonWriter);
            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_NUMBER, cancellationToken).ConfigureAwait(false);

            await jsonWriter.WriteValueAsync(obj.Number, cancellationToken).ConfigureAwait(false);

            if (obj.Episodes != null)
            {
                var syncWatchlistPostShowEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktSyncWatchlistPostShowEpisode>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false);

                await syncWatchlistPostShowEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
        public async Task Test_ErrorArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktError> traktError = new List <ITraktError>
            {
                new TraktError
                {
                    Error       = "error 1",
                    Description = "error description 1"
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktError>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktError);

                json.Should().Be(@"[{""error"":""error 1"",""error_description"":""error description 1""}]");
            }
        }
コード例 #27
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncRatingsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default)
        {
            if (jsonWriter == null)
            {
                throw new ArgumentNullException(nameof(jsonWriter));
            }

            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.Movies != null)
            {
                var syncRatingsPostResponseNotFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundMovie>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false);

                await syncRatingsPostResponseNotFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Shows != null)
            {
                var syncRatingsPostResponseNotFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundShow>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false);

                await syncRatingsPostResponseNotFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Seasons != null)
            {
                var syncRatingsPostResponseNotFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundSeason>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false);

                await syncRatingsPostResponseNotFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false);
            }

            if (obj.Episodes != null)
            {
                var syncRatingsPostResponseNotFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundEpisode>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false);

                await syncRatingsPostResponseNotFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #28
0
        public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktCertifications obj, CancellationToken cancellationToken = default)
        {
            if (jsonWriter == null)
            {
                throw new ArgumentNullException(nameof(jsonWriter));
            }

            await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false);

            if (obj.US != null)
            {
                var certificationArrayJsonWriter = new ArrayJsonWriter <ITraktCertification>();
                await jsonWriter.WritePropertyNameAsync(JsonProperties.CERTIFICATIONS_PROPERTY_NAME_US, cancellationToken).ConfigureAwait(false);

                await certificationArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.US, cancellationToken).ConfigureAwait(false);
            }

            await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false);
        }
コード例 #29
0
        public async Task Test_CountryArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktCountry> traktCountries = new List <ITraktCountry>
            {
                new TraktCountry
                {
                    Name = "Australia",
                    Code = "au"
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktCountry>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCountries);

                json.Should().Be(@"[{""name"":""Australia"",""code"":""au""}]");
            }
        }
コード例 #30
0
        public async Task Test_GenreArrayJsonWriter_WriteArray_JsonWriter_SingleObject()
        {
            IEnumerable <ITraktGenre> traktGenres = new List <ITraktGenre>
            {
                new TraktGenre
                {
                    Name = "genre name 1",
                    Slug = "genre slug 1"
                }
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new ArrayJsonWriter <ITraktGenre>();
                    await traktJsonWriter.WriteArrayAsync(jsonWriter, traktGenres);

                    stringWriter.ToString().Should().Be(@"[{""name"":""genre name 1"",""slug"":""genre slug 1""}]");
                }
        }