public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_JsonReader_Not_Valid_3()
        {
            var traktJsonReader = new WatchedShowSeasonArrayJsonReader();

            using (var reader = new StringReader(JSON_NOT_VALID_3))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktWatchedShowSeasons = await traktJsonReader.ReadArrayAsync(jsonReader);

                    traktWatchedShowSeasons.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                    var watchedShowSeasons = traktWatchedShowSeasons.ToArray();

                    watchedShowSeasons[0].Should().NotBeNull();
                    watchedShowSeasons[0].Number.Should().BeNull();
                    watchedShowSeasons[0].Episodes.Should().NotBeNull().And.HaveCount(2);

                    var episodes = watchedShowSeasons[0].Episodes.ToArray();

                    episodes[0].Should().NotBeNull();
                    episodes[0].Number.Should().Be(1);
                    episodes[0].Plays.Should().Be(1);
                    episodes[0].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());

                    episodes[1].Should().NotBeNull();
                    episodes[1].Number.Should().Be(2);
                    episodes[1].Plays.Should().Be(1);
                    episodes[1].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());

                    watchedShowSeasons[1].Should().NotBeNull();
                    watchedShowSeasons[1].Number.Should().Be(2);
                    watchedShowSeasons[1].Episodes.Should().BeNull();
                }
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Stream_Incomplete_2()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            using (var stream = JSON_INCOMPLETE_2.ToStream())
            {
                var traktWatchedShowSeasons = await jsonReader.ReadArrayAsync(stream);

                traktWatchedShowSeasons.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(2);

                var watchedShowSeasons = traktWatchedShowSeasons.ToArray();

                watchedShowSeasons[0].Should().NotBeNull();
                watchedShowSeasons[0].Number.Should().Be(1);
                watchedShowSeasons[0].Episodes.Should().NotBeNull().And.HaveCount(2);

                var episodes = watchedShowSeasons[0].Episodes.ToArray();

                episodes[0].Should().NotBeNull();
                episodes[0].Number.Should().Be(1);
                episodes[0].Plays.Should().Be(1);
                episodes[0].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());

                episodes[1].Should().NotBeNull();
                episodes[1].Number.Should().Be(2);
                episodes[1].Plays.Should().Be(1);
                episodes[1].LastWatchedAt.Should().Be(DateTime.Parse("2014-10-12T17:00:54.000Z").ToUniversalTime());

                watchedShowSeasons[1].Should().NotBeNull();
                watchedShowSeasons[1].Number.Should().Be(2);
                watchedShowSeasons[1].Episodes.Should().BeNull();
            }
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_JsonReader_Null()
        {
            var traktJsonReader = new WatchedShowSeasonArrayJsonReader();

            var traktSeasonWatchedProgress = await traktJsonReader.ReadArrayAsync(default(JsonTextReader));

            traktSeasonWatchedProgress.Should().BeNull();
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Stream_Null()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            var traktSeasonWatchedProgress = await jsonReader.ReadArrayAsync(default(Stream));

            traktSeasonWatchedProgress.Should().BeNull();
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Json_String_Empty()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            var traktSeasonWatchedProgress = await jsonReader.ReadArrayAsync(string.Empty);

            traktSeasonWatchedProgress.Should().BeNull();
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Json_String_Empty_Array()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            var traktWatchedShowSeasons = await jsonReader.ReadArrayAsync(JSON_EMPTY_ARRAY);

            traktWatchedShowSeasons.Should().NotBeNull().And.BeEmpty();
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Stream_Empty()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            using (var stream = string.Empty.ToStream())
            {
                var traktSeasonWatchedProgress = await jsonReader.ReadArrayAsync(stream);

                traktSeasonWatchedProgress.Should().BeNull();
            }
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_Stream_Empty_Array()
        {
            var jsonReader = new WatchedShowSeasonArrayJsonReader();

            using (var stream = JSON_EMPTY_ARRAY.ToStream())
            {
                var traktWatchedShowSeasons = await jsonReader.ReadArrayAsync(stream);

                traktWatchedShowSeasons.Should().NotBeNull().And.BeEmpty();
            }
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_JsonReader_Empty()
        {
            var traktJsonReader = new WatchedShowSeasonArrayJsonReader();

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

                    traktSeasonWatchedProgress.Should().BeNull();
                }
        }
        public async Task Test_WatchedShowSeasonArrayJsonReader_ReadArray_From_JsonReader_Empty_Array()
        {
            var traktJsonReader = new WatchedShowSeasonArrayJsonReader();

            using (var reader = new StringReader(JSON_EMPTY_ARRAY))
                using (var jsonReader = new JsonTextReader(reader))
                {
                    var traktWatchedShowSeasons = await traktJsonReader.ReadArrayAsync(jsonReader);

                    traktWatchedShowSeasons.Should().NotBeNull().And.BeEmpty();
                }
        }