public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Empty()
        {
            var jsonReader    = new ListLikeObjectJsonReader();
            var traktListLike = await jsonReader.ReadObjectAsync(string.Empty);

            traktListLike.Should().BeNull();
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Not_Valid_3()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            var traktListLike = await jsonReader.ReadObjectAsync(JSON_NOT_VALID_3);

            traktListLike.Should().NotBeNull();
            traktListLike.LikedAt.Should().BeNull();
            traktListLike.User.Should().BeNull();
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Not_Valid_2()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            var traktListLike = await jsonReader.ReadObjectAsync(JSON_NOT_VALID_2);

            traktListLike.Should().NotBeNull();
            traktListLike.LikedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
            traktListLike.User.Should().BeNull();
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Incomplete_1()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            var traktListLike = await jsonReader.ReadObjectAsync(JSON_INCOMPLETE_1);

            traktListLike.Should().NotBeNull();
            traktListLike.LikedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
            traktListLike.User.Should().BeNull();
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Stream_Empty()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            using (var stream = string.Empty.ToStream())
            {
                var traktListLike = await jsonReader.ReadObjectAsync(stream);

                traktListLike.Should().BeNull();
            }
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_JsonReader_Empty()
        {
            var traktJsonReader = new ListLikeObjectJsonReader();

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

                    traktListLike.Should().BeNull();
                }
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Stream_Not_Valid_3()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            using (var stream = JSON_NOT_VALID_3.ToStream())
            {
                var traktListLike = await jsonReader.ReadObjectAsync(stream);

                traktListLike.Should().NotBeNull();
                traktListLike.LikedAt.Should().BeNull();
                traktListLike.User.Should().BeNull();
            }
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_JsonReader_Not_Valid_3()
        {
            var traktJsonReader = new ListLikeObjectJsonReader();

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

                    traktListLike.Should().NotBeNull();
                    traktListLike.LikedAt.Should().BeNull();
                    traktListLike.User.Should().BeNull();
                }
        }
        public async Task Test_TraktListLike_With_Type_Movie_From_Minimal_Json()
        {
            var jsonReader = new ListLikeObjectJsonReader();
            var listLike   = await jsonReader.ReadObjectAsync(JSON) as TraktListLike;

            listLike.Should().NotBeNull();
            listLike.LikedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
            listLike.User.Should().NotBeNull();
            listLike.User.Username.Should().Be("justin");
            listLike.User.IsPrivate.Should().BeFalse();
            listLike.User.Name.Should().Be("Justin Nemeth");
            listLike.User.IsVIP.Should().BeTrue();
            listLike.User.IsVIP_EP.Should().BeTrue();
            listLike.User.Ids.Should().NotBeNull();
            listLike.User.Ids.Slug.Should().Be("justin");
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Not_Valid_1()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            var traktListLike = await jsonReader.ReadObjectAsync(JSON_NOT_VALID_1);

            traktListLike.Should().NotBeNull();
            traktListLike.LikedAt.Should().BeNull();
            traktListLike.User.Should().NotBeNull();
            traktListLike.User.Username.Should().Be("justin");
            traktListLike.User.IsPrivate.Should().BeFalse();
            traktListLike.User.Name.Should().Be("Justin Nemeth");
            traktListLike.User.IsVIP.Should().BeTrue();
            traktListLike.User.IsVIP_EP.Should().BeTrue();
            traktListLike.User.Ids.Should().NotBeNull();
            traktListLike.User.Ids.Slug.Should().Be("justin");
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Complete()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            var traktListLike = await jsonReader.ReadObjectAsync(JSON_COMPLETE);

            traktListLike.Should().NotBeNull();
            traktListLike.LikedAt.Should().Be(DateTime.Parse("2014-09-01T09:10:11.000Z").ToUniversalTime());
            traktListLike.User.Should().NotBeNull();
            traktListLike.User.Username.Should().Be("justin");
            traktListLike.User.IsPrivate.Should().BeFalse();
            traktListLike.User.Name.Should().Be("Justin Nemeth");
            traktListLike.User.IsVIP.Should().BeTrue();
            traktListLike.User.IsVIP_EP.Should().BeTrue();
            traktListLike.User.Ids.Should().NotBeNull();
            traktListLike.User.Ids.Slug.Should().Be("justin");
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Stream_Incomplete_2()
        {
            var jsonReader = new ListLikeObjectJsonReader();

            using (var stream = JSON_INCOMPLETE_2.ToStream())
            {
                var traktListLike = await jsonReader.ReadObjectAsync(stream);

                traktListLike.Should().NotBeNull();
                traktListLike.LikedAt.Should().BeNull();
                traktListLike.User.Should().NotBeNull();
                traktListLike.User.Username.Should().Be("justin");
                traktListLike.User.IsPrivate.Should().BeFalse();
                traktListLike.User.Name.Should().Be("Justin Nemeth");
                traktListLike.User.IsVIP.Should().BeTrue();
                traktListLike.User.IsVIP_EP.Should().BeTrue();
                traktListLike.User.Ids.Should().NotBeNull();
                traktListLike.User.Ids.Slug.Should().Be("justin");
            }
        }
        public async Task Test_ListLikeObjectJsonReader_ReadObject_From_JsonReader_Incomplete_2()
        {
            var traktJsonReader = new ListLikeObjectJsonReader();

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

                    traktListLike.Should().NotBeNull();
                    traktListLike.LikedAt.Should().BeNull();
                    traktListLike.User.Should().NotBeNull();
                    traktListLike.User.Username.Should().Be("justin");
                    traktListLike.User.IsPrivate.Should().BeFalse();
                    traktListLike.User.Name.Should().Be("Justin Nemeth");
                    traktListLike.User.IsVIP.Should().BeTrue();
                    traktListLike.User.IsVIP_EP.Should().BeTrue();
                    traktListLike.User.Ids.Should().NotBeNull();
                    traktListLike.User.Ids.Slug.Should().Be("justin");
                }
        }
 public async Task Test_ListLikeObjectJsonReader_ReadObject_From_Json_String_Null()
 {
     var jsonReader = new ListLikeObjectJsonReader();
     Func <Task <ITraktListLike> > traktListLike = () => jsonReader.ReadObjectAsync(default(string));
     await traktListLike.Should().ThrowAsync <ArgumentNullException>();
 }