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()}\"}}" + "]}"); }
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()}\"}}"); }
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()}\"}}"); }
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}}]}]}"); } }