public async Task Test_SyncRecommendationsPostResponseObjectJsonWriter_WriteObject_StringWriter_Exceptions()
 {
     var traktJsonWriter = new SyncRecommendationsPostResponseObjectJsonWriter();
     ITraktSyncRecommendationsPostResponse traktSyncRecommendationsPostResponse = new TraktSyncRecommendationsPostResponse();
     Func <Task <string> > action = () => traktJsonWriter.WriteObjectAsync(default(StringWriter), traktSyncRecommendationsPostResponse);
     await action.Should().ThrowAsync <ArgumentNullException>();
 }
Exemple #2
0
        public void Test_TraktSyncRecommendationsPostResponse_Default_Constructor()
        {
            var syncRecommendationsPostResponse = new TraktSyncRecommendationsPostResponse();

            syncRecommendationsPostResponse.Added.Should().BeNull();
            syncRecommendationsPostResponse.Existing.Should().BeNull();
            syncRecommendationsPostResponse.NotFound.Should().BeNull();
        }
        public async Task Test_SyncRecommendationsPostResponseObjectJsonWriter_WriteObject_JsonWriter_Complete()
        {
            ITraktSyncRecommendationsPostResponse traktSyncRecommendationsPostResponse = new TraktSyncRecommendationsPostResponse
            {
                Added = new TraktSyncRecommendationsPostResponseGroup
                {
                    Movies = 1,
                    Shows  = 2
                },
                Existing = new TraktSyncRecommendationsPostResponseGroup
                {
                    Movies = 3,
                    Shows  = 4
                },
                NotFound = new TraktSyncRecommendationsPostResponseNotFoundGroup
                {
                    Movies = new List <ITraktSyncRecommendationsPostMovie>
                    {
                        new TraktSyncRecommendationsPostMovie
                        {
                            Ids = new TraktMovieIds
                            {
                                Imdb = "tt0000111"
                            }
                        }
                    },
                    Shows = new List <ITraktSyncRecommendationsPostShow>
                    {
                        new TraktSyncRecommendationsPostShow
                        {
                            Ids = new TraktShowIds
                            {
                                Imdb = "tt0000222"
                            }
                        }
                    }
                }
            };

            using var stringWriter = new StringWriter();
            using var jsonWriter   = new JsonTextWriter(stringWriter);
            var traktJsonWriter = new SyncRecommendationsPostResponseObjectJsonWriter();
            await traktJsonWriter.WriteObjectAsync(jsonWriter, traktSyncRecommendationsPostResponse);

            stringWriter.ToString().Should().Be(@"{""added"":{""movies"":1,""shows"":2}," +
                                                @"""existing"":{""movies"":3,""shows"":4}," +
                                                @"""not_found"":{""movies"":[{""ids"":{""trakt"":0,""imdb"":""tt0000111""}}]," +
                                                @"""shows"":[{""ids"":{""trakt"":0,""imdb"":""tt0000222""}}]}}");
        }
        public override async Task <ITraktSyncRecommendationsPostResponse> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default)
        {
            CheckJsonTextReader(jsonReader);

            if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject)
            {
                var groupReader         = new SyncRecommendationsPostResponseGroupObjectJsonReader();
                var notFoundGroupReader = new SyncRecommendationsPostResponseNotFoundGroupObjectJsonReader();
                ITraktSyncRecommendationsPostResponse syncRecommendationsPostResponse = new TraktSyncRecommendationsPostResponse();

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

                    switch (propertyName)
                    {
                    case JsonProperties.PROPERTY_NAME_ADDED:
                        syncRecommendationsPostResponse.Added = await groupReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_EXISTING:
                        syncRecommendationsPostResponse.Existing = await groupReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

                    case JsonProperties.PROPERTY_NAME_NOT_FOUND:
                        syncRecommendationsPostResponse.NotFound = await notFoundGroupReader.ReadObjectAsync(jsonReader, cancellationToken);

                        break;

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

                        break;
                    }
                }

                return(syncRecommendationsPostResponse);
            }

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