public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Json_String_Empty_Array() { var jsonReader = new SeasonWatchedProgressArrayJsonReader(); var traktSeasonWatchedProgresses = await jsonReader.ReadArrayAsync(JSON_EMPTY_ARRAY); traktSeasonWatchedProgresses.Should().NotBeNull().And.BeEmpty(); }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Json_String_Empty() { var jsonReader = new SeasonWatchedProgressArrayJsonReader(); var traktSeasonWatchedProgresses = await jsonReader.ReadArrayAsync(string.Empty); traktSeasonWatchedProgresses.Should().BeNull(); }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Stream_Null() { var traktJsonReader = new SeasonWatchedProgressArrayJsonReader(); var traktSeasonWatchedProgresses = await traktJsonReader.ReadArrayAsync(default(Stream)); traktSeasonWatchedProgresses.Should().BeNull(); }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Stream_Not_Valid_5() { var traktJsonReader = new SeasonWatchedProgressArrayJsonReader(); using (var stream = JSON_NOT_VALID_5.ToStream()) { var traktSeasonWatchedProgresses = await traktJsonReader.ReadArrayAsync(stream); traktSeasonWatchedProgresses.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(3); var watchedProgresses = traktSeasonWatchedProgresses.ToArray(); watchedProgresses[0].Number.Should().BeNull(); watchedProgresses[0].Aired.Should().Be(3); watchedProgresses[0].Completed.Should().Be(2); watchedProgresses[0].Episodes.Should().NotBeNull().And.HaveCount(2); var episodesWatchedProgress = watchedProgresses[0].Episodes.ToArray(); episodesWatchedProgress[0].Should().NotBeNull(); episodesWatchedProgress[0].Number.Should().Be(1); episodesWatchedProgress[0].Completed.Should().BeTrue(); episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime()); episodesWatchedProgress[1].Should().NotBeNull(); episodesWatchedProgress[1].Number.Should().Be(2); episodesWatchedProgress[1].Completed.Should().BeTrue(); episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime()); // ----------------------------------------------- watchedProgresses[1].Number.Should().Be(2); watchedProgresses[1].Aired.Should().BeNull(); watchedProgresses[1].Completed.Should().Be(2); watchedProgresses[1].Episodes.Should().NotBeNull().And.HaveCount(2); episodesWatchedProgress = watchedProgresses[1].Episodes.ToArray(); episodesWatchedProgress[0].Should().NotBeNull(); episodesWatchedProgress[0].Number.Should().Be(1); episodesWatchedProgress[0].Completed.Should().BeTrue(); episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime()); episodesWatchedProgress[1].Should().NotBeNull(); episodesWatchedProgress[1].Number.Should().Be(2); episodesWatchedProgress[1].Completed.Should().BeTrue(); episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime()); // ----------------------------------------------- watchedProgresses[2].Number.Should().Be(3); watchedProgresses[2].Aired.Should().Be(3); watchedProgresses[2].Completed.Should().BeNull(); watchedProgresses[2].Episodes.Should().BeNull(); } }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Stream_Empty() { var traktJsonReader = new SeasonWatchedProgressArrayJsonReader(); using (var stream = string.Empty.ToStream()) { var traktSeasonWatchedProgresses = await traktJsonReader.ReadArrayAsync(stream); traktSeasonWatchedProgresses.Should().BeNull(); } }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Stream_Empty_Array() { var traktJsonReader = new SeasonWatchedProgressArrayJsonReader(); using (var stream = JSON_EMPTY_ARRAY.ToStream()) { var traktSeasonWatchedProgresses = await traktJsonReader.ReadArrayAsync(stream); traktSeasonWatchedProgresses.Should().NotBeNull().And.BeEmpty(); } }
public async Task Test_SeasonWatchedProgressArrayJsonReader_ReadArray_From_Json_String_Incomplete_7() { var jsonReader = new SeasonWatchedProgressArrayJsonReader(); var traktSeasonWatchedProgresses = await jsonReader.ReadArrayAsync(JSON_INCOMPLETE_7); traktSeasonWatchedProgresses.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(3); var watchedProgresses = traktSeasonWatchedProgresses.ToArray(); watchedProgresses[0].Number.Should().Be(1); watchedProgresses[0].Aired.Should().Be(3); watchedProgresses[0].Completed.Should().Be(2); watchedProgresses[0].Episodes.Should().NotBeNull().And.HaveCount(2); var episodesWatchedProgress = watchedProgresses[0].Episodes.ToArray(); episodesWatchedProgress[0].Should().NotBeNull(); episodesWatchedProgress[0].Number.Should().Be(1); episodesWatchedProgress[0].Completed.Should().BeTrue(); episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime()); episodesWatchedProgress[1].Should().NotBeNull(); episodesWatchedProgress[1].Number.Should().Be(2); episodesWatchedProgress[1].Completed.Should().BeTrue(); episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime()); // ----------------------------------------------- watchedProgresses[1].Number.Should().Be(2); watchedProgresses[1].Aired.Should().Be(3); watchedProgresses[1].Completed.Should().Be(2); watchedProgresses[1].Episodes.Should().NotBeNull().And.HaveCount(2); episodesWatchedProgress = watchedProgresses[1].Episodes.ToArray(); episodesWatchedProgress[0].Should().NotBeNull(); episodesWatchedProgress[0].Number.Should().Be(1); episodesWatchedProgress[0].Completed.Should().BeTrue(); episodesWatchedProgress[0].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-18T01:00:00.000Z").ToUniversalTime()); episodesWatchedProgress[1].Should().NotBeNull(); episodesWatchedProgress[1].Number.Should().Be(2); episodesWatchedProgress[1].Completed.Should().BeTrue(); episodesWatchedProgress[1].LastWatchedAt.Should().Be(DateTime.Parse("2011-04-19T02:00:00.000Z").ToUniversalTime()); // ----------------------------------------------- watchedProgresses[2].Number.Should().BeNull(); watchedProgresses[2].Aired.Should().BeNull(); watchedProgresses[2].Completed.Should().Be(2); watchedProgresses[2].Episodes.Should().BeNull(); }
public override async Task <ITraktShowWatchedProgress> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktShowWatchedProgress))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var seasonsArrayReader = new SeasonArrayJsonReader(); var seasonWatchedProgressArrayReader = new SeasonWatchedProgressArrayJsonReader(); var episodeObjectReader = new EpisodeObjectJsonReader(); ITraktShowWatchedProgress traktShowWatchedProgress = new TraktShowWatchedProgress(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_AIRED: traktShowWatchedProgress.Aired = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_COMPLETED: traktShowWatchedProgress.Completed = await jsonReader.ReadAsInt32Async(cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_LAST_WATCHED_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktShowWatchedProgress.LastWatchedAt = value.Second; } break; } case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_SEASONS: traktShowWatchedProgress.Seasons = await seasonWatchedProgressArrayReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_HIDDEN_SEASONS: traktShowWatchedProgress.HiddenSeasons = await seasonsArrayReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_NEXT_EPISODE: traktShowWatchedProgress.NextEpisode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_LAST_EPISODE: traktShowWatchedProgress.LastEpisode = await episodeObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.SHOW_WATCHED_PROGRESS_PROPERTY_NAME_RESET_AT: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktShowWatchedProgress.ResetAt = value.Second; } break; } default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktShowWatchedProgress); } return(await Task.FromResult(default(ITraktShowWatchedProgress))); }