public async Task Test_RecommendationObjectJsonWriter_Movie_WriteObject_StringWriter_Complete() { ITraktRecommendation traktRecommendation = new TraktRecommendation { Rank = 1, ListedAt = LISTED_AT, Type = TraktRecommendationObjectType.Movie, Notes = "Daft Punk really knocks it out of the park on the soundtrack.", Movie = new TraktMovie { Title = "TRON: Legacy", Year = 2010, Ids = new TraktMovieIds { Trakt = 1U, Slug = "tron-legacy-2010", Imdb = "tt1104001", Tmdb = 20526U } } }; using var stringWriter = new StringWriter(); var traktJsonWriter = new RecommendationObjectJsonWriter(); string json = await traktJsonWriter.WriteObjectAsync(stringWriter, traktRecommendation); json.Should().Be(@"{""rank"":1," + $"\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"," + @"""type"":""movie""," + @"""notes"":""Daft Punk really knocks it out of the park on the soundtrack.""," + @"""movie"":{""title"":""TRON: Legacy"",""year"":2010," + @"""ids"":{""trakt"":1,""slug"":""tron-legacy-2010""," + @"""imdb"":""tt1104001"",""tmdb"":20526}}}"); }
public async Task Test_RecommendationObjectJsonWriter_Show_WriteObject_StringWriter_Only_ListedAt_Property() { ITraktRecommendation traktRecommendation = new TraktRecommendation { ListedAt = LISTED_AT }; using var stringWriter = new StringWriter(); var traktJsonWriter = new RecommendationObjectJsonWriter(); string json = await traktJsonWriter.WriteObjectAsync(stringWriter, traktRecommendation); json.Should().Be($"{{\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"}}"); }
public async Task Test_RecommendationArrayJsonWriter_WriteArray_StringWriter_SingleObject_Show() { IEnumerable <ITraktRecommendation> traktRecommendations = new List <ITraktRecommendation> { new TraktRecommendation { Rank = 1, ListedAt = LISTED_AT, Type = TraktRecommendationObjectType.Show, Notes = "Atmospheric for days.", Show = new TraktShow { Title = "The Walking Dead", Year = 2010, Ids = new TraktShowIds { Trakt = 2U, Slug = "the-walking-dead", Tvdb = 153021U, Imdb = "tt1520211", Tmdb = 1402U } } } }; using var stringWriter = new StringWriter(); var traktJsonWriter = new ArrayJsonWriter <ITraktRecommendation>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktRecommendations); json.Should().Be(@"[{""rank"":1," + $"\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"," + @"""type"":""show""," + @"""notes"":""Atmospheric for days.""," + @"""show"":{""title"":""The Walking Dead"",""year"":2010," + @"""ids"":{""trakt"":2,""slug"":""the-walking-dead""," + @"""tvdb"":153021,""imdb"":""tt1520211"",""tmdb"":1402}}}]"); }
public async Task Test_RecommendationObjectJsonWriter_Show_WriteObject_JsonWriter_Complete() { ITraktRecommendation traktRecommendation = new TraktRecommendation { Rank = 1, ListedAt = LISTED_AT, Type = TraktRecommendationObjectType.Show, Notes = "Atmospheric for days.", Show = new TraktShow { Title = "The Walking Dead", Year = 2010, Ids = new TraktShowIds { Trakt = 2U, Slug = "the-walking-dead", Tvdb = 153021U, Imdb = "tt1520211", Tmdb = 1402U } } }; using var stringWriter = new StringWriter(); using var jsonWriter = new JsonTextWriter(stringWriter); var traktJsonWriter = new RecommendationObjectJsonWriter(); await traktJsonWriter.WriteObjectAsync(jsonWriter, traktRecommendation); stringWriter.ToString().Should().Be(@"{""rank"":1," + $"\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"," + @"""type"":""show""," + @"""notes"":""Atmospheric for days.""," + @"""show"":{""title"":""The Walking Dead"",""year"":2010," + @"""ids"":{""trakt"":2,""slug"":""the-walking-dead""," + @"""tvdb"":153021,""imdb"":""tt1520211"",""tmdb"":1402}}}"); }
public async Task Test_RecommendationArrayJsonWriter_WriteArray_StringWriter_Complete() { IEnumerable <ITraktRecommendation> traktRecommendations = new List <ITraktRecommendation> { new TraktRecommendation { Rank = 1, ListedAt = LISTED_AT, Type = TraktRecommendationObjectType.Movie, Notes = "Daft Punk really knocks it out of the park on the soundtrack.", Movie = new TraktMovie { Title = "TRON: Legacy", Year = 2010, Ids = new TraktMovieIds { Trakt = 1U, Slug = "tron-legacy-2010", Imdb = "tt1104001", Tmdb = 20526U } } }, new TraktRecommendation { Rank = 2, ListedAt = LISTED_AT, Type = TraktRecommendationObjectType.Show, Notes = "Atmospheric for days.", Show = new TraktShow { Title = "The Walking Dead", Year = 2010, Ids = new TraktShowIds { Trakt = 2U, Slug = "the-walking-dead", Tvdb = 153021U, Imdb = "tt1520211", Tmdb = 1402U } } } }; using var stringWriter = new StringWriter(); var traktJsonWriter = new ArrayJsonWriter <ITraktRecommendation>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktRecommendations); json.Should().Be(@"[{""rank"":1," + $"\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"," + @"""type"":""movie""," + @"""notes"":""Daft Punk really knocks it out of the park on the soundtrack.""," + @"""movie"":{""title"":""TRON: Legacy"",""year"":2010," + @"""ids"":{""trakt"":1,""slug"":""tron-legacy-2010""," + @"""imdb"":""tt1104001"",""tmdb"":20526}}}," + @"{""rank"":2," + $"\"listed_at\":\"{LISTED_AT.ToTraktLongDateTimeString()}\"," + @"""type"":""show""," + @"""notes"":""Atmospheric for days.""," + @"""show"":{""title"":""The Walking Dead"",""year"":2010," + @"""ids"":{""trakt"":2,""slug"":""the-walking-dead""," + @"""tvdb"":153021,""imdb"":""tt1520211"",""tmdb"":1402}}}]"); }