示例#1
0
        public override async Task <ITraktSyncWatchlistPostEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktSyncWatchlistPostEpisode)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var episodeIdsObjectJsonReader = new EpisodeIdsObjectJsonReader();
                ITraktSyncWatchlistPostEpisode syncWatchlistPostEpisode = new TraktSyncWatchlistPostEpisode();

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

                    switch (propertyName)
                    {
                    case JsonProperties.SYNC_WATCHLIST_POST_EPISODE_PROPERTY_NAME_IDS:
                        syncWatchlistPostEpisode.Ids = await episodeIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(syncWatchlistPostEpisode);
            }

            return(await Task.FromResult(default(ITraktSyncWatchlistPostEpisode)));
        }
示例#2
0
        public void Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Null()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();
            Func <Task <ITraktEpisodeIds> > traktEpisodeIds = () => traktJsonReader.ReadObjectAsync(default(Stream));

            traktEpisodeIds.Should().Throw <ArgumentNullException>();
        }
示例#3
0
        public override async Task <ITraktPostResponseNotFoundEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            CheckJsonTextReader(jsonReader);

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var episodeIdsReader = new EpisodeIdsObjectJsonReader();
                ITraktPostResponseNotFoundEpisode postResponseNotFoundEpisode = new TraktPostResponseNotFoundEpisode();

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

                    switch (propertyName)
                    {
                    case JsonProperties.PROPERTY_NAME_IDS:
                        postResponseNotFoundEpisode.Ids = await episodeIdsReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(postResponseNotFoundEpisode);
            }

            return(await Task.FromResult(default(ITraktPostResponseNotFoundEpisode)));
        }
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Null()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(default(Stream));

            traktEpisodeIds.Should().BeNull();
        }
示例#5
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Empty()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await jsonReader.ReadObjectAsync(string.Empty);

            traktEpisodeIds.Should().BeNull();
        }
示例#6
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Empty()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var stream = string.Empty.ToStream())
            {
                var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(stream);

                traktEpisodeIds.Should().BeNull();
            }
        }
示例#7
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_JsonReader_Empty()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var reader = new StringReader(string.Empty))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(jsonReader);

                    traktEpisodeIds.Should().BeNull();
                }
        }
        public override async Task <ITraktSyncRatingsPostEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            if (jsonReader == null)
            {
                return(await Task.FromResult(default(ITraktSyncRatingsPostEpisode)));
            }

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var episodeIdsObjectJsonReader = new EpisodeIdsObjectJsonReader();
                ITraktSyncRatingsPostEpisode syncRatingsPostEpisode = new TraktSyncRatingsPostEpisode();

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

                    switch (propertyName)
                    {
                    case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_RATED_AT:
                    {
                        Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken);

                        if (value.First)
                        {
                            syncRatingsPostEpisode.RatedAt = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_RATING:
                        syncRatingsPostEpisode.Rating = await jsonReader.ReadAsInt32Async(cancellationToken);

                        break;

                    case JsonProperties.SYNC_RATINGS_POST_EPISODE_PROPERTY_NAME_IDS:
                        syncRatingsPostEpisode.Ids = await episodeIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(syncRatingsPostEpisode);
            }

            return(await Task.FromResult(default(ITraktSyncRatingsPostEpisode)));
        }
示例#9
0
        public async Task Test_TraktEpisodeIds_From_Json()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();
            var episodeIds = await jsonReader.ReadObjectAsync(JSON) as TraktEpisodeIds;

            episodeIds.Should().NotBeNull();
            episodeIds.Trakt.Should().Be(73640);
            episodeIds.Tvdb.Should().Be(3254641U);
            episodeIds.Imdb.Should().Be("tt1480055");
            episodeIds.Tmdb.Should().Be(63056U);
            episodeIds.TvRage.Should().Be(1065008299U);
            episodeIds.HasAnyId.Should().BeTrue();
        }
示例#10
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Incomplete_5()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await jsonReader.ReadObjectAsync(JSON_INCOMPLETE_5);

            traktEpisodeIds.Should().NotBeNull();
            traktEpisodeIds.Trakt.Should().Be(73640);
            traktEpisodeIds.Tvdb.Should().Be(3254641U);
            traktEpisodeIds.Imdb.Should().Be("tt1480055");
            traktEpisodeIds.Tmdb.Should().Be(63056U);
            traktEpisodeIds.TvRage.Should().BeNull();
        }
示例#11
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Not_Valid_4()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await jsonReader.ReadObjectAsync(JSON_NOT_VALID_4);

            traktEpisodeIds.Should().NotBeNull();
            traktEpisodeIds.Trakt.Should().Be(73640);
            traktEpisodeIds.Tvdb.Should().Be(3254641U);
            traktEpisodeIds.Imdb.Should().Be("tt1480055");
            traktEpisodeIds.Tmdb.Should().BeNull();
            traktEpisodeIds.TvRage.Should().Be(1065008299U);
        }
示例#12
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Not_Valid_6()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await jsonReader.ReadObjectAsync(JSON_NOT_VALID_6);

            traktEpisodeIds.Should().NotBeNull();
            traktEpisodeIds.Trakt.Should().Be(0);
            traktEpisodeIds.Tvdb.Should().BeNull();
            traktEpisodeIds.Imdb.Should().BeNull();
            traktEpisodeIds.Tmdb.Should().BeNull();
            traktEpisodeIds.TvRage.Should().BeNull();
        }
示例#13
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Incomplete_10()
        {
            var jsonReader = new EpisodeIdsObjectJsonReader();

            var traktEpisodeIds = await jsonReader.ReadObjectAsync(JSON_INCOMPLETE_10);

            traktEpisodeIds.Should().NotBeNull();
            traktEpisodeIds.Trakt.Should().Be(0);
            traktEpisodeIds.Tvdb.Should().BeNull();
            traktEpisodeIds.Imdb.Should().BeNull();
            traktEpisodeIds.Tmdb.Should().BeNull();
            traktEpisodeIds.TvRage.Should().Be(1065008299U);
        }
示例#14
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Incomplete_9()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var stream = JSON_INCOMPLETE_9.ToStream())
            {
                var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(stream);

                traktEpisodeIds.Should().NotBeNull();
                traktEpisodeIds.Trakt.Should().Be(0);
                traktEpisodeIds.Tvdb.Should().BeNull();
                traktEpisodeIds.Imdb.Should().BeNull();
                traktEpisodeIds.Tmdb.Should().Be(63056U);
                traktEpisodeIds.TvRage.Should().BeNull();
            }
        }
示例#15
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Incomplete_4()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var stream = JSON_INCOMPLETE_4.ToStream())
            {
                var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(stream);

                traktEpisodeIds.Should().NotBeNull();
                traktEpisodeIds.Trakt.Should().Be(73640);
                traktEpisodeIds.Tvdb.Should().Be(3254641U);
                traktEpisodeIds.Imdb.Should().Be("tt1480055");
                traktEpisodeIds.Tmdb.Should().BeNull();
                traktEpisodeIds.TvRage.Should().Be(1065008299U);
            }
        }
示例#16
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Not_Valid_6()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var stream = JSON_NOT_VALID_6.ToStream())
            {
                var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(stream);

                traktEpisodeIds.Should().NotBeNull();
                traktEpisodeIds.Trakt.Should().Be(0);
                traktEpisodeIds.Tvdb.Should().BeNull();
                traktEpisodeIds.Imdb.Should().BeNull();
                traktEpisodeIds.Tmdb.Should().BeNull();
                traktEpisodeIds.TvRage.Should().BeNull();
            }
        }
示例#17
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Stream_Not_Valid_5()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var stream = JSON_NOT_VALID_5.ToStream())
            {
                var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(stream);

                traktEpisodeIds.Should().NotBeNull();
                traktEpisodeIds.Trakt.Should().Be(73640);
                traktEpisodeIds.Tvdb.Should().Be(3254641U);
                traktEpisodeIds.Imdb.Should().Be("tt1480055");
                traktEpisodeIds.Tmdb.Should().Be(63056U);
                traktEpisodeIds.TvRage.Should().BeNull();
            }
        }
示例#18
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_JsonReader_Incomplete_9()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var reader = new StringReader(JSON_INCOMPLETE_9))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(jsonReader);

                    traktEpisodeIds.Should().NotBeNull();
                    traktEpisodeIds.Trakt.Should().Be(0);
                    traktEpisodeIds.Tvdb.Should().BeNull();
                    traktEpisodeIds.Imdb.Should().BeNull();
                    traktEpisodeIds.Tmdb.Should().Be(63056U);
                    traktEpisodeIds.TvRage.Should().BeNull();
                }
        }
示例#19
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_JsonReader_Not_Valid_2()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var reader = new StringReader(JSON_NOT_VALID_2))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(jsonReader);

                    traktEpisodeIds.Should().NotBeNull();
                    traktEpisodeIds.Trakt.Should().Be(73640);
                    traktEpisodeIds.Tvdb.Should().BeNull();
                    traktEpisodeIds.Imdb.Should().Be("tt1480055");
                    traktEpisodeIds.Tmdb.Should().Be(63056U);
                    traktEpisodeIds.TvRage.Should().Be(1065008299U);
                }
        }
示例#20
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_JsonReader_Incomplete_4()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var reader = new StringReader(JSON_INCOMPLETE_4))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(jsonReader);

                    traktEpisodeIds.Should().NotBeNull();
                    traktEpisodeIds.Trakt.Should().Be(73640);
                    traktEpisodeIds.Tvdb.Should().Be(3254641U);
                    traktEpisodeIds.Imdb.Should().Be("tt1480055");
                    traktEpisodeIds.Tmdb.Should().BeNull();
                    traktEpisodeIds.TvRage.Should().Be(1065008299U);
                }
        }
示例#21
0
        public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_JsonReader_Not_Valid_6()
        {
            var traktJsonReader = new EpisodeIdsObjectJsonReader();

            using (var reader = new StringReader(JSON_NOT_VALID_6))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktEpisodeIds = await traktJsonReader.ReadObjectAsync(jsonReader);

                    traktEpisodeIds.Should().NotBeNull();
                    traktEpisodeIds.Trakt.Should().Be(0);
                    traktEpisodeIds.Tvdb.Should().BeNull();
                    traktEpisodeIds.Imdb.Should().BeNull();
                    traktEpisodeIds.Tmdb.Should().BeNull();
                    traktEpisodeIds.TvRage.Should().BeNull();
                }
        }
示例#22
0
        public override async Task <ITraktSyncHistoryPostEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            CheckJsonTextReader(jsonReader);

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var episodeIdsReader = new EpisodeIdsObjectJsonReader();
                ITraktSyncHistoryPostEpisode syncHistoryPostEpisode = new TraktSyncHistoryPostEpisode();

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

                    switch (propertyName)
                    {
                    case JsonProperties.PROPERTY_NAME_WATCHED_AT:
                    {
                        Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken);

                        if (value.First)
                        {
                            syncHistoryPostEpisode.WatchedAt = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.PROPERTY_NAME_IDS:
                        syncHistoryPostEpisode.Ids = await episodeIdsReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(syncHistoryPostEpisode);
            }

            return(await Task.FromResult(default(ITraktSyncHistoryPostEpisode)));
        }
示例#23
0
 public async Task Test_EpisodeIdsObjectJsonReader_ReadObject_From_Json_String_Null()
 {
     var jsonReader = new EpisodeIdsObjectJsonReader();
     Func <Task <ITraktEpisodeIds> > traktEpisodeIds = () => jsonReader.ReadObjectAsync(default(string));
     await traktEpisodeIds.Should().ThrowAsync <ArgumentNullException>();
 }
        public override async Task <ITraktSyncCollectionPostEpisode> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            CheckJsonTextReader(jsonReader);

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                ITraktSyncCollectionPostEpisode traktSyncCollectionPostEpisode = new TraktSyncCollectionPostEpisode();
                var episodeIdsObjectJsonReader = new EpisodeIdsObjectJsonReader();

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

                    switch (propertyName)
                    {
                    case JsonProperties.PROPERTY_NAME_COLLECTED_AT:
                    {
                        Pair <bool, DateTime> value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken);

                        if (value.First)
                        {
                            traktSyncCollectionPostEpisode.CollectedAt = value.Second;
                        }

                        break;
                    }

                    case JsonProperties.PROPERTY_NAME_IDS:
                        traktSyncCollectionPostEpisode.Ids = await episodeIdsObjectJsonReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_MEDIA_TYPE:
                        traktSyncCollectionPostEpisode.MediaType = await JsonReaderHelper.ReadEnumerationValueAsync <TraktMediaType>(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_RESOLUTION:
                        traktSyncCollectionPostEpisode.MediaResolution = await JsonReaderHelper.ReadEnumerationValueAsync <TraktMediaResolution>(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_AUDIO:
                        traktSyncCollectionPostEpisode.Audio = await JsonReaderHelper.ReadEnumerationValueAsync <TraktMediaAudio>(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_AUDIO_CHANNELS:
                        traktSyncCollectionPostEpisode.AudioChannels = await JsonReaderHelper.ReadEnumerationValueAsync <TraktMediaAudioChannel>(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_3D:
                        traktSyncCollectionPostEpisode.ThreeDimensional = await jsonReader.ReadAsBooleanAsync(cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(traktSyncCollectionPostEpisode);
            }

            return(await Task.FromResult(default(ITraktSyncCollectionPostEpisode)));
        }