Ejemplo n.º 1
0
        public async Task Test_CollectionShowEpisodeArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktCollectionShowEpisode> traktCollectionShowEpisodes = new List <ITraktCollectionShowEpisode>
            {
                new TraktCollectionShowEpisode
                {
                    Number      = 1,
                    CollectedAt = COLLECTED_AT,
                    Metadata    = new TraktMetadata
                    {
                        MediaType        = TraktMediaType.Digital,
                        MediaResolution  = TraktMediaResolution.HD_720p,
                        Audio            = TraktMediaAudio.AAC,
                        AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                        ThreeDimensional = true
                    }
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktCollectionShowEpisode>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCollectionShowEpisodes);

                json.Should().Be(@"[{""number"":1," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital""," +
                                 @"""resolution"":""hd_720p"",""audio"":""aac""," +
                                 @"""audio_channels"":""5.1"",""3d"":true}}]");
            }
        }
        public async Task Test_EpisodeCollectionProgressArrayJsonWriter_WriteArray_Array_Complete()
        {
            IEnumerable <ITraktEpisodeCollectionProgress> traktEpisodeCollectionProgresss = new List <ITraktEpisodeCollectionProgress>
            {
                new TraktEpisodeCollectionProgress
                {
                    Number      = 1,
                    Completed   = true,
                    CollectedAt = COLLECTED_AT
                },
                new TraktEpisodeCollectionProgress
                {
                    Number      = 2,
                    Completed   = true,
                    CollectedAt = COLLECTED_AT
                },
                new TraktEpisodeCollectionProgress
                {
                    Number      = 3,
                    Completed   = true,
                    CollectedAt = COLLECTED_AT
                }
            };

            var    traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeCollectionProgress>();
            string json            = await traktJsonWriter.WriteArrayAsync(traktEpisodeCollectionProgresss);

            json.Should().Be($"[{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                             $"{{\"number\":2,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                             $"{{\"number\":3,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}]");
        }
        public async Task Test_SeasonCollectionProgressObjectJsonWriter_WriteObject_Object_Complete()
        {
            ITraktSeasonCollectionProgress traktSeasonCollectionProgress = new TraktSeasonCollectionProgress
            {
                Number    = 1,
                Aired     = 24,
                Completed = 12,
                Episodes  = new List <ITraktEpisodeCollectionProgress>
                {
                    new TraktEpisodeCollectionProgress
                    {
                        Number      = 1,
                        Completed   = true,
                        CollectedAt = COLLECTED_AT
                    },
                    new TraktEpisodeCollectionProgress
                    {
                        Number      = 2,
                        Completed   = true,
                        CollectedAt = COLLECTED_AT
                    }
                }
            };

            var    traktJsonWriter = new SeasonCollectionProgressObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktSeasonCollectionProgress);

            json.Should().Be(@"{""number"":1,""aired"":24,""completed"":12," +
                             @"""episodes"":[" +
                             $"{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                             $"{{\"number\":2,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}" +
                             "]}");
        }
Ejemplo n.º 4
0
        public async Task Test_EpisodeCollectionProgressObjectJsonWriter_WriteObject_Object_Only_CollectedAt_Property()
        {
            ITraktEpisodeCollectionProgress traktEpisodeCollectionProgress = new TraktEpisodeCollectionProgress
            {
                CollectedAt = COLLECTED_AT
            };

            var    traktJsonWriter = new EpisodeCollectionProgressObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktEpisodeCollectionProgress);

            json.Should().Be($"{{\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}");
        }
Ejemplo n.º 5
0
        public async Task Test_EpisodeCollectionProgressObjectJsonWriter_WriteObject_Object_Complete()
        {
            ITraktEpisodeCollectionProgress traktEpisodeCollectionProgress = new TraktEpisodeCollectionProgress
            {
                Number      = 1,
                Completed   = true,
                CollectedAt = COLLECTED_AT
            };

            var    traktJsonWriter = new EpisodeCollectionProgressObjectJsonWriter();
            string json            = await traktJsonWriter.WriteObjectAsync(traktEpisodeCollectionProgress);

            json.Should().Be(@"{""number"":1,""completed"":true," +
                             $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}");
        }
Ejemplo n.º 6
0
        public async Task Test_CollectionShowEpisodeObjectJsonWriter_WriteObject_StringWriter_Only_CollectedAt_Property()
        {
            ITraktCollectionShowEpisode traktCollectionShowEpisode = new TraktCollectionShowEpisode
            {
                CollectedAt = COLLECTED_AT
            };

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

                json.Should().Be($"{{\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}");
            }
        }
        public async Task Test_CollectionMovieArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktCollectionMovie> traktCollectionMovies = new List <ITraktCollectionMovie>
            {
                new TraktCollectionMovie
                {
                    CollectedAt = COLLECTED_AT,
                    Metadata    = new TraktMetadata
                    {
                        MediaType        = TraktMediaType.Bluray,
                        MediaResolution  = TraktMediaResolution.HD_1080p,
                        Audio            = TraktMediaAudio.DTS,
                        AudioChannels    = TraktMediaAudioChannel.Channels_6_1,
                        ThreeDimensional = false
                    },
                    Movie = new TraktMovie
                    {
                        Title = "Star Wars: The Force Awakens",
                        Year  = 2015,
                        Ids   = new TraktMovieIds
                        {
                            Trakt = 94024U,
                            Slug  = "star-wars-the-force-awakens-2015",
                            Imdb  = "tt2488496",
                            Tmdb  = 140607U
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktCollectionMovie>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCollectionMovies);

                json.Should().Be($"[{{\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""movie"":{""title"":""Star Wars: The Force Awakens"",""year"":2015," +
                                 @"""ids"":{""trakt"":94024,""slug"":""star-wars-the-force-awakens-2015""," +
                                 @"""imdb"":""tt2488496"",""tmdb"":140607}}," +
                                 @"""metadata"":{""media_type"":""bluray"",""resolution"":""hd_1080p""," +
                                 @"""audio"":""dts"",""audio_channels"":""6.1"",""3d"":false}}]");
            }
        }
        public async Task Test_SeasonCollectionProgressArrayJsonWriter_WriteArray_StringWriter_Complete()
        {
            IEnumerable <ITraktSeasonCollectionProgress> traktSeasonCollectionProgresses = new List <ITraktSeasonCollectionProgress>
            {
                new TraktSeasonCollectionProgress
                {
                    Number    = 1,
                    Aired     = 24,
                    Completed = 12,
                    Episodes  = new List <ITraktEpisodeCollectionProgress>
                    {
                        new TraktEpisodeCollectionProgress
                        {
                            Number      = 1,
                            Completed   = true,
                            CollectedAt = COLLECTED_AT
                        },
                        new TraktEpisodeCollectionProgress
                        {
                            Number      = 2,
                            Completed   = true,
                            CollectedAt = COLLECTED_AT
                        }
                    }
                },
                new TraktSeasonCollectionProgress
                {
                    Number    = 2,
                    Aired     = 24,
                    Completed = 12,
                    Episodes  = new List <ITraktEpisodeCollectionProgress>
                    {
                        new TraktEpisodeCollectionProgress
                        {
                            Number      = 1,
                            Completed   = true,
                            CollectedAt = COLLECTED_AT
                        },
                        new TraktEpisodeCollectionProgress
                        {
                            Number      = 2,
                            Completed   = true,
                            CollectedAt = COLLECTED_AT
                        }
                    }
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktSeasonCollectionProgress>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktSeasonCollectionProgresses);

                json.Should().Be(@"[{""number"":1,""aired"":24,""completed"":12," +
                                 @"""episodes"":[" +
                                 $"{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                                 $"{{\"number\":2,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}" +
                                 "]}," +
                                 @"{""number"":2,""aired"":24,""completed"":12," +
                                 @"""episodes"":[" +
                                 $"{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                                 $"{{\"number\":2,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}" +
                                 "]}]");
            }
        }
        public async Task Test_EpisodeCollectionProgressArrayJsonWriter_WriteArray_StringWriter_SingleObject()
        {
            IEnumerable <ITraktEpisodeCollectionProgress> traktEpisodeCollectionProgresss = new List <ITraktEpisodeCollectionProgress>
            {
                new TraktEpisodeCollectionProgress
                {
                    Number      = 1,
                    Completed   = true,
                    CollectedAt = COLLECTED_AT
                }
            };

            using (var stringWriter = new StringWriter())
            {
                var    traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeCollectionProgress>();
                string json            = await traktJsonWriter.WriteArrayAsync(stringWriter, traktEpisodeCollectionProgresss);

                json.Should().Be($"[{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}]");
            }
        }
        public async Task Test_SeasonCollectionProgressObjectJsonWriter_WriteObject_StringWriter_Only_Episodes_Property()
        {
            ITraktSeasonCollectionProgress traktSeasonCollectionProgress = new TraktSeasonCollectionProgress
            {
                Episodes = new List <ITraktEpisodeCollectionProgress>
                {
                    new TraktEpisodeCollectionProgress
                    {
                        Number      = 1,
                        Completed   = true,
                        CollectedAt = COLLECTED_AT
                    },
                    new TraktEpisodeCollectionProgress
                    {
                        Number      = 2,
                        Completed   = true,
                        CollectedAt = COLLECTED_AT
                    }
                }
            };

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

                json.Should().Be(@"{""episodes"":[" +
                                 $"{{\"number\":1,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}," +
                                 $"{{\"number\":2,\"completed\":true,\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"}}" +
                                 "]}");
            }
        }
        public async Task Test_CollectionShowObjectJsonWriter_WriteObject_StringWriter_Only_CollectionSeasons_Property()
        {
            ITraktCollectionShow traktCollectionShow = new TraktCollectionShow
            {
                CollectionSeasons = new List <ITraktCollectionShowSeason>
                {
                    new TraktCollectionShowSeason
                    {
                        Number   = 1,
                        Episodes = new List <ITraktCollectionShowEpisode>
                        {
                            new TraktCollectionShowEpisode
                            {
                                Number      = 1,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            },
                            new TraktCollectionShowEpisode
                            {
                                Number      = 2,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            }
                        }
                    },
                    new TraktCollectionShowSeason
                    {
                        Number   = 2,
                        Episodes = new List <ITraktCollectionShowEpisode>
                        {
                            new TraktCollectionShowEpisode
                            {
                                Number      = 1,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            },
                            new TraktCollectionShowEpisode
                            {
                                Number      = 2,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            }
                        }
                    }
                }
            };

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

                json.Should().Be(@"{""seasons"":[{""number"":1,""episodes"":[{""number"":1," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}," +
                                 @"{""number"":2," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}]}," +
                                 @"{""number"":2,""episodes"":[{""number"":1," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}," +
                                 @"{""number"":2," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}]}]}");
            }
        }
        public async Task Test_CollectionShowObjectJsonWriter_WriteObject_StringWriter_Complete()
        {
            ITraktCollectionShow traktCollectionShow = new TraktCollectionShow
            {
                LastCollectedAt = LAST_COLLECTED_AT,
                LastUpdatedAt   = LAST_UPDATED_AT,
                Show            = new TraktShow
                {
                    Title = "Game of Thrones",
                    Year  = 2011,
                    Ids   = new TraktShowIds
                    {
                        Trakt  = 1390U,
                        Slug   = "game-of-thrones",
                        Tvdb   = 121361U,
                        Imdb   = "tt0944947",
                        Tmdb   = 1399U,
                        TvRage = 24493U
                    }
                },
                CollectionSeasons = new List <ITraktCollectionShowSeason>
                {
                    new TraktCollectionShowSeason
                    {
                        Number   = 1,
                        Episodes = new List <ITraktCollectionShowEpisode>
                        {
                            new TraktCollectionShowEpisode
                            {
                                Number      = 1,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            },
                            new TraktCollectionShowEpisode
                            {
                                Number      = 2,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            }
                        }
                    },
                    new TraktCollectionShowSeason
                    {
                        Number   = 2,
                        Episodes = new List <ITraktCollectionShowEpisode>
                        {
                            new TraktCollectionShowEpisode
                            {
                                Number      = 1,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            },
                            new TraktCollectionShowEpisode
                            {
                                Number      = 2,
                                CollectedAt = COLLECTED_AT,
                                Metadata    = new TraktMetadata
                                {
                                    MediaType        = TraktMediaType.Digital,
                                    MediaResolution  = TraktMediaResolution.HD_720p,
                                    Audio            = TraktMediaAudio.AAC,
                                    AudioChannels    = TraktMediaAudioChannel.Channels_5_1,
                                    ThreeDimensional = true
                                }
                            }
                        }
                    }
                }
            };

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

                json.Should().Be($"{{\"last_collected_at\":\"{LAST_COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 $"\"last_updated_at\":\"{LAST_UPDATED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""show"":{""title"":""Game of Thrones"",""year"":2011," +
                                 @"""ids"":{""trakt"":1390,""slug"":""game-of-thrones""," +
                                 @"""tvdb"":121361,""imdb"":""tt0944947""," +
                                 @"""tmdb"":1399,""tvrage"":24493}}," +
                                 @"""seasons"":[{""number"":1,""episodes"":[{""number"":1," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}," +
                                 @"{""number"":2," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}]}," +
                                 @"{""number"":2,""episodes"":[{""number"":1," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}," +
                                 @"{""number"":2," +
                                 $"\"collected_at\":\"{COLLECTED_AT.ToTraktLongDateTimeString()}\"," +
                                 @"""metadata"":{""media_type"":""digital"",""resolution"":""hd_720p""," +
                                 @"""audio"":""aac"",""audio_channels"":""5.1"",""3d"":true}}]}]}");
            }
        }