public void Test_IdsObjectJsonWriter_WriteObject_JsonWriter_Exceptions()
        {
            var         traktJsonWriter = new IdsObjectJsonWriter();
            ITraktIds   traktIds        = new TraktIds();
            Func <Task> action          = () => traktJsonWriter.WriteObjectAsync(default(JsonTextWriter), traktIds);

            action.Should().Throw <ArgumentNullException>();
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_Object_Only_TvRage_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                TvRage = 101
            };

            var    traktJsonWriter = new IdsObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktIds);

            json.Should().Be(@"{""trakt"":0,""tvrage"":101}");
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_Object_Only_Tmdb_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Tmdb = 789
            };

            var    traktJsonWriter = new IdsObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktIds);

            json.Should().Be(@"{""trakt"":0,""tmdb"":789}");
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_Object_Only_Slug_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Slug = "ids slug"
            };

            var    traktJsonWriter = new IdsObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktIds);

            json.Should().Be(@"{""trakt"":0,""slug"":""ids slug""}");
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_StringWriter_Only_Imdb_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Imdb = "ids imdb"
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new IdsObjectJsonWriter();
                string json            = await traktJsonWriter.WriteObjectAsync(stringWriter, traktIds);

                json.Should().Be(@"{""trakt"":0,""imdb"":""ids imdb""}");
            }
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_StringWriter_Only_Trakt_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Trakt = 123
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new IdsObjectJsonWriter();
                string json            = await traktJsonWriter.WriteObjectAsync(stringWriter, traktIds);

                json.Should().Be(@"{""trakt"":123}");
            }
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_JsonWriter_Only_Tmdb_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Tmdb = 789
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new IdsObjectJsonWriter();
                    await traktJsonWriter.WriteObjectAsync(jsonWriter, traktIds);

                    stringWriter.ToString().Should().Be(@"{""trakt"":0,""tmdb"":789}");
                }
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_JsonWriter_Only_Slug_Property()
        {
            ITraktIds traktIds = new TraktIds
            {
                Slug = "ids slug"
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new IdsObjectJsonWriter();
                    await traktJsonWriter.WriteObjectAsync(jsonWriter, traktIds);

                    stringWriter.ToString().Should().Be(@"{""trakt"":0,""slug"":""ids slug""}");
                }
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_Object_Complete()
        {
            ITraktIds traktIds = new TraktIds
            {
                Trakt  = 123,
                Slug   = "ids slug",
                Tvdb   = 456,
                Imdb   = "ids imdb",
                Tmdb   = 789,
                TvRage = 101
            };

            var    traktJsonWriter = new IdsObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktIds);

            json.Should().Be(@"{""trakt"":123,""slug"":""ids slug"",""tvdb"":456," +
                             @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}");
        }
        public async Task Test_IdsObjectJsonWriter_WriteObject_JsonWriter_Complete()
        {
            ITraktIds traktIds = new TraktIds
            {
                Trakt  = 123,
                Slug   = "ids slug",
                Tvdb   = 456,
                Imdb   = "ids imdb",
                Tmdb   = 789,
                TvRage = 101
            };

            using (var stringWriter = new StringWriter())
                using (var jsonWriter = new JsonTextWriter(stringWriter))
                {
                    var traktJsonWriter = new IdsObjectJsonWriter();
                    await traktJsonWriter.WriteObjectAsync(jsonWriter, traktIds);

                    stringWriter.ToString().Should().Be(@"{""trakt"":123,""slug"":""ids slug"",""tvdb"":456," +
                                                        @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}");
                }
        }
 public void Test_IdsObjectJsonWriter_WriteObject_Object_Exceptions()
 {
     var traktJsonWriter          = new IdsObjectJsonWriter();
     Func <Task <string> > action = () => traktJsonWriter.WriteObjectAsync(default);