public async Task Test_MetadataArrayJsonWriter_WriteArray_JsonWriter_Empty() { IEnumerable <ITraktMetadata> traktMetadata = new List <TraktMetadata>(); using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktMetadata>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktMetadata); stringWriter.ToString().Should().Be("[]"); } }
public async Task Test_CollectionMovieArrayJsonWriter_WriteArray_JsonWriter_Empty() { IEnumerable <ITraktCollectionMovie> traktCollectionMovies = new List <TraktCollectionMovie>(); using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktCollectionMovie>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCollectionMovies); stringWriter.ToString().Should().Be("[]"); } }
public async Task Test_SeasonWatchedProgressArrayJsonWriter_WriteArray_JsonWriter_Empty() { IEnumerable <ITraktSeasonWatchedProgress> traktSeasonWatchedProgresses = new List <TraktSeasonWatchedProgress>(); using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktSeasonWatchedProgress>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktSeasonWatchedProgresses); stringWriter.ToString().Should().Be("[]"); } }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktWatchedShow obj, CancellationToken cancellationToken = default) { CheckJsonTextWriter(jsonWriter); await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.Plays.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_PLAYS, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Plays, cancellationToken).ConfigureAwait(false); } if (obj.LastWatchedAt.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_LAST_WATCHED_AT, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.LastWatchedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false); } if (obj.LastUpdatedAt.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_LAST_UPDATED_AT, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.LastUpdatedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false); } if (obj.ResetAt.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RESET_AT, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.ResetAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false); } if (obj.Show != null) { var showObjectJsonWriter = new ShowObjectJsonWriter(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SHOW, cancellationToken).ConfigureAwait(false); await showObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Show, cancellationToken).ConfigureAwait(false); } if (obj.WatchedSeasons != null) { var watchedShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktWatchedShowSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await watchedShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.WatchedSeasons, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_CommentLikeArrayJsonWriter_WriteArray_StringWriter_Complete() { IEnumerable <ITraktCommentLike> traktCommentLikes = new List <ITraktCommentLike> { new TraktCommentLike { LikedAt = LIKED_AT, User = new TraktUser { Username = "******", IsPrivate = false, Name = "Sean Rudford", IsVIP = true, IsVIP_EP = true, Ids = new TraktUserIds { Slug = "sean" } } }, new TraktCommentLike { LikedAt = LIKED_AT, User = new TraktUser { Username = "******", IsPrivate = false, Name = "Sean Rudford", IsVIP = true, IsVIP_EP = true, Ids = new TraktUserIds { Slug = "sean" } } } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktCommentLike>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCommentLikes); json.Should().Be($"[{{\"liked_at\":\"{LIKED_AT.ToTraktLongDateTimeString()}\"," + @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," + @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}," + $"{{\"liked_at\":\"{LIKED_AT.ToTraktLongDateTimeString()}\"," + @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," + @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}]"); } }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncRatingsPostShow obj, CancellationToken cancellationToken = default) { CheckJsonTextWriter(jsonWriter); await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.RatedAt.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RATED_AT, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.RatedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false); } if (obj.Rating.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_RATING, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Rating, cancellationToken).ConfigureAwait(false); } if (!string.IsNullOrEmpty(obj.Title)) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_TITLE, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Title, cancellationToken).ConfigureAwait(false); } if (obj.Year.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_YEAR, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Year, cancellationToken).ConfigureAwait(false); } if (obj.Ids != null) { var showIdsObjectJsonWriter = new ShowIdsObjectJsonWriter(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_IDS, cancellationToken).ConfigureAwait(false); await showIdsObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Ids, cancellationToken).ConfigureAwait(false); } if (obj.Seasons != null) { var syncRatingsPostShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostShowSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await syncRatingsPostShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktUserCustomListItemsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default) { if (jsonWriter == null) { throw new ArgumentNullException(nameof(jsonWriter)); } await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.Movies != null) { var notFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundMovie>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false); await notFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false); } if (obj.Shows != null) { var notFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundShow>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false); await notFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false); } if (obj.Seasons != null) { var notFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await notFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false); } if (obj.Episodes != null) { var notFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundEpisode>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false); await notFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false); } if (obj.People != null) { var notFoundPersonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundPerson>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_PEOPLE, cancellationToken).ConfigureAwait(false); await notFoundPersonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.People, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_NetworkArrayJsonWriter_WriteArray_Array_SingleObject() { IEnumerable<ITraktNetwork> traktNetworks = new List<ITraktNetwork> { new TraktNetwork { Network = "network 1" } }; var traktJsonWriter = new ArrayJsonWriter<ITraktNetwork>(); string json = await traktJsonWriter.WriteArrayAsync(traktNetworks); json.Should().Be(@"[{""network"":""network 1""}]"); }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktCertifications obj, CancellationToken cancellationToken = default) { CheckJsonTextWriter(jsonWriter); await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.US != null) { var certificationArrayJsonWriter = new ArrayJsonWriter <ITraktCertification>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_US, cancellationToken).ConfigureAwait(false); await certificationArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.US, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncHistoryPostShow obj, CancellationToken cancellationToken = default) { if (jsonWriter == null) { throw new ArgumentNullException(nameof(jsonWriter)); } await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.WatchedAt.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_WATCHED_AT, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.WatchedAt.Value.ToTraktLongDateTimeString(), cancellationToken).ConfigureAwait(false); } if (!string.IsNullOrEmpty(obj.Title)) { await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_TITLE, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Title, cancellationToken).ConfigureAwait(false); } if (obj.Year.HasValue) { await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_YEAR, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Year, cancellationToken).ConfigureAwait(false); } if (obj.Ids != null) { var showIdsObjectJsonWriter = new ShowIdsObjectJsonWriter(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_IDS, cancellationToken).ConfigureAwait(false); await showIdsObjectJsonWriter.WriteObjectAsync(jsonWriter, obj.Ids, cancellationToken).ConfigureAwait(false); } if (obj.Seasons != null) { var syncHistoryPostShowSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncHistoryPostShowSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_HISTORY_POST_SHOW_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await syncHistoryPostShowSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_GenreArrayJsonWriter_WriteArray_Array_SingleObject() { IEnumerable <ITraktGenre> traktGenres = new List <ITraktGenre> { new TraktGenre { Name = "genre name 1", Slug = "genre slug 1" } }; var traktJsonWriter = new ArrayJsonWriter <ITraktGenre>(); string json = await traktJsonWriter.WriteArrayAsync(traktGenres); json.Should().Be(@"[{""name"":""genre name 1"",""slug"":""genre slug 1""}]"); }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktUserCustomListItemsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default) { CheckJsonTextWriter(jsonWriter); await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.Movies != null) { var notFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundMovie>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false); await notFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false); } if (obj.Shows != null) { var notFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundShow>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false); await notFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false); } if (obj.Seasons != null) { var notFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await notFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false); } if (obj.Episodes != null) { var notFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundEpisode>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false); await notFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false); } if (obj.People != null) { var notFoundPersonArrayJsonWriter = new ArrayJsonWriter <ITraktPostResponseNotFoundPerson>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_PEOPLE, cancellationToken).ConfigureAwait(false); await notFoundPersonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.People, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_CertificationArrayJsonWriter_WriteArray_Array_SingleObject() { IEnumerable <ITraktCertification> traktCertifications = new List <ITraktCertification> { new TraktCertification { Name = "certification name 1", Slug = "certification slug 1", Description = "certification description 1" } }; var traktJsonWriter = new ArrayJsonWriter <ITraktCertification>(); string json = await traktJsonWriter.WriteArrayAsync(traktCertifications); json.Should().Be(@"[{""name"":""certification name 1"",""slug"":""certification slug 1"",""description"":""certification description 1""}]"); }
public async Task Test_CommentArrayJsonWriter_WriteArray_JsonWriter_SingleObject() { IEnumerable <ITraktComment> traktComments = new List <ITraktComment> { new TraktComment { Id = 76957U, ParentId = 1234U, CreatedAt = CREATED_UPDATED_AT, UpdatedAt = CREATED_UPDATED_AT, Comment = "I hate they made The flash a kids show. Could else be much better. And with a better flash offcourse.", Spoiler = true, Review = true, Replies = 1, Likes = 2, UserRating = 7.3f, User = new TraktUser { Username = "******", IsPrivate = false, Name = "Sean Rudford", IsVIP = true, IsVIP_EP = true, Ids = new TraktUserIds { Slug = "sean" } } } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktComment>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktComments); stringWriter.ToString().Should().Be(@"[{""id"":76957,""parent_id"":1234," + $"\"created_at\":\"{CREATED_UPDATED_AT.ToTraktLongDateTimeString()}\"," + $"\"updated_at\":\"{CREATED_UPDATED_AT.ToTraktLongDateTimeString()}\"," + @"""comment"":""I hate they made The flash a kids show. Could else be much better. And with a better flash offcourse.""," + @"""spoiler"":true,""review"":true,""replies"":1,""likes"":2,""user_rating"":7.3," + @"""user"":{""username"":""sean"",""private"":false,""ids"":{""slug"":""sean""}," + @"""name"":""Sean Rudford"",""vip"":true,""vip_ep"":true}}]"); } }
public async Task Test_EpisodeTranslationArrayJsonWriter_WriteArray_Array_SingleObject() { IEnumerable <ITraktEpisodeTranslation> traktEpisodeTranslations = new List <ITraktEpisodeTranslation> { new TraktEpisodeTranslation { Title = "title 1", Overview = "overview 1", LanguageCode = "language code 1" } }; var traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeTranslation>(); string json = await traktJsonWriter.WriteArrayAsync(traktEpisodeTranslations); json.Should().Be(@"[{""title"":""title 1"",""overview"":""overview 1"",""language"":""language code 1""}]"); }
public async Task Test_CastMemberArrayJsonWriter_WriteArray_JsonWriter_Complete() { IEnumerable <ITraktCastMember> traktCastMembers = new List <ITraktCastMember> { new TraktCastMember { Characters = new List <string> { "Character 1" }, Person = new TraktPerson { Name = "Person 1", Ids = new TraktPersonIds { Slug = "person-1" } } }, new TraktCastMember { Characters = new List <string> { "Character 2" }, Person = new TraktPerson { Name = "Person 2", Ids = new TraktPersonIds { Slug = "person-2" } } } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktCastMember>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCastMembers); stringWriter.ToString().Should().Be(@"[{""characters"":[""Character 1""],""person"":{""name"":""Person 1"",""ids"":{""trakt"":0,""slug"":""person-1""}}}," + @"{""characters"":[""Character 2""],""person"":{""name"":""Person 2"",""ids"":{""trakt"":0,""slug"":""person-2""}}}]"); } }
public async Task Test_EpisodeWatchedProgressArrayJsonWriter_WriteArray_Array_SingleObject() { IEnumerable <ITraktEpisodeWatchedProgress> traktEpisodeWatchedProgresss = new List <ITraktEpisodeWatchedProgress> { new TraktEpisodeWatchedProgress { Number = 1, Completed = true, LastWatchedAt = LAST_WATCHED_AT } }; var traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeWatchedProgress>(); string json = await traktJsonWriter.WriteArrayAsync(traktEpisodeWatchedProgresss); json.Should().Be($"[{{\"number\":1,\"completed\":true,\"last_watched_at\":\"{LAST_WATCHED_AT.ToTraktLongDateTimeString()}\"}}]"); }
public async Task Test_NetworkArrayJsonWriter_WriteArray_StringWriter_SingleObject() { IEnumerable <ITraktNetwork> traktNetworks = new List <ITraktNetwork> { new TraktNetwork { Name = "network 1" } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktNetwork>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktNetworks); json.Should().Be(@"[{""name"":""network 1""}]"); } }
public async Task Test_ImageArrayJsonWriter_WriteArray_StringWriter_SingleObject() { IEnumerable <ITraktImage> traktImage = new List <ITraktImage> { new TraktImage { Full = "fullPath 1" } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktImage>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktImage); json.Should().Be(@"[{""full"":""fullPath 1""}]"); } }
public async Task Test_DeviceArrayJsonWriter_WriteArray_JsonWriter_Complete() { IEnumerable <ITraktDevice> traktDevices = new List <ITraktDevice> { new TraktDevice { DeviceCode = "mockDeviceCode1", UserCode = "mockUserCode1", VerificationUrl = "mockUrl1", ExpiresInSeconds = 7200, IntervalInSeconds = 600 }, new TraktDevice { DeviceCode = "mockDeviceCode2", UserCode = "mockUserCode2", VerificationUrl = "mockUrl2", ExpiresInSeconds = 7200, IntervalInSeconds = 600 }, new TraktDevice { DeviceCode = "mockDeviceCode3", UserCode = "mockUserCode3", VerificationUrl = "mockUrl3", ExpiresInSeconds = 7200, IntervalInSeconds = 600 } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktDevice>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktDevices); stringWriter.ToString().Should().Be(@"[{""device_code"":""mockDeviceCode1"",""user_code"":""mockUserCode1""," + @"""verification_url"":""mockUrl1"",""expires_in"":7200,""interval"":600}," + @"{""device_code"":""mockDeviceCode2"",""user_code"":""mockUserCode2""," + @"""verification_url"":""mockUrl2"",""expires_in"":7200,""interval"":600}," + @"{""device_code"":""mockDeviceCode3"",""user_code"":""mockUserCode3""," + @"""verification_url"":""mockUrl3"",""expires_in"":7200,""interval"":600}]"); } }
public async Task Test_EpisodeIdsArrayJsonWriter_WriteArray_JsonWriter_Complete() { IEnumerable <ITraktEpisodeIds> traktEpisodeIds = new List <ITraktEpisodeIds> { new TraktEpisodeIds { Trakt = 123, Tvdb = 456, Imdb = "ids imdb", Tmdb = 789, TvRage = 101 }, new TraktEpisodeIds { Trakt = 123, Tvdb = 456, Imdb = "ids imdb", Tmdb = 789, TvRage = 101 }, new TraktEpisodeIds { Trakt = 123, Tvdb = 456, Imdb = "ids imdb", Tmdb = 789, TvRage = 101 } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktEpisodeIds>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktEpisodeIds); stringWriter.ToString().Should().Be(@"[{""trakt"":123,""tvdb"":456," + @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}," + @"{""trakt"":123,""tvdb"":456," + @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}," + @"{""trakt"":123,""tvdb"":456," + @"""imdb"":""ids imdb"",""tmdb"":789,""tvrage"":101}]"); } }
public async Task Test_CollectionMovieArrayJsonWriter_WriteArray_JsonWriter_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()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktCollectionMovie>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktCollectionMovies); stringWriter.ToString().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_LanguageArrayJsonWriter_WriteArray_StringWriter_SingleObject() { IEnumerable <ITraktLanguage> traktLanguages = new List <ITraktLanguage> { new TraktLanguage { Name = "English", Code = "en" } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktLanguage>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktLanguages); json.Should().Be(@"[{""name"":""English"",""code"":""en""}]"); } }
public async Task Test_NetworkArrayJsonWriter_WriteArray_JsonWriter_SingleObject() { IEnumerable <ITraktNetwork> traktNetworks = new List <ITraktNetwork> { new TraktNetwork { Network = "network 1" } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktNetwork>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktNetworks); stringWriter.ToString().Should().Be(@"[{""network"":""network 1""}]"); } }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncWatchlistPostShowSeason obj, CancellationToken cancellationToken = default) { CheckJsonTextWriter(jsonWriter); await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_NUMBER, cancellationToken).ConfigureAwait(false); await jsonWriter.WriteValueAsync(obj.Number, cancellationToken).ConfigureAwait(false); if (obj.Episodes != null) { var syncWatchlistPostShowEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktSyncWatchlistPostShowEpisode>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false); await syncWatchlistPostShowEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_ErrorArrayJsonWriter_WriteArray_StringWriter_SingleObject() { IEnumerable <ITraktError> traktError = new List <ITraktError> { new TraktError { Error = "error 1", Description = "error description 1" } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktError>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktError); json.Should().Be(@"[{""error"":""error 1"",""error_description"":""error description 1""}]"); } }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktSyncRatingsPostResponseNotFoundGroup obj, CancellationToken cancellationToken = default) { if (jsonWriter == null) { throw new ArgumentNullException(nameof(jsonWriter)); } await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.Movies != null) { var syncRatingsPostResponseNotFoundMovieArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundMovie>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_MOVIES, cancellationToken).ConfigureAwait(false); await syncRatingsPostResponseNotFoundMovieArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Movies, cancellationToken).ConfigureAwait(false); } if (obj.Shows != null) { var syncRatingsPostResponseNotFoundShowArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundShow>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SHOWS, cancellationToken).ConfigureAwait(false); await syncRatingsPostResponseNotFoundShowArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Shows, cancellationToken).ConfigureAwait(false); } if (obj.Seasons != null) { var syncRatingsPostResponseNotFoundSeasonArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundSeason>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_SEASONS, cancellationToken).ConfigureAwait(false); await syncRatingsPostResponseNotFoundSeasonArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Seasons, cancellationToken).ConfigureAwait(false); } if (obj.Episodes != null) { var syncRatingsPostResponseNotFoundEpisodeArrayJsonWriter = new ArrayJsonWriter <ITraktSyncRatingsPostResponseNotFoundEpisode>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.SYNC_RATINGS_POST_RESPONSE_NOT_FOUND_GROUP_PROPERTY_NAME_EPISODES, cancellationToken).ConfigureAwait(false); await syncRatingsPostResponseNotFoundEpisodeArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.Episodes, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public override async Task WriteObjectAsync(JsonTextWriter jsonWriter, ITraktCertifications obj, CancellationToken cancellationToken = default) { if (jsonWriter == null) { throw new ArgumentNullException(nameof(jsonWriter)); } await jsonWriter.WriteStartObjectAsync(cancellationToken).ConfigureAwait(false); if (obj.US != null) { var certificationArrayJsonWriter = new ArrayJsonWriter <ITraktCertification>(); await jsonWriter.WritePropertyNameAsync(JsonProperties.CERTIFICATIONS_PROPERTY_NAME_US, cancellationToken).ConfigureAwait(false); await certificationArrayJsonWriter.WriteArrayAsync(jsonWriter, obj.US, cancellationToken).ConfigureAwait(false); } await jsonWriter.WriteEndObjectAsync(cancellationToken).ConfigureAwait(false); }
public async Task Test_CountryArrayJsonWriter_WriteArray_StringWriter_SingleObject() { IEnumerable <ITraktCountry> traktCountries = new List <ITraktCountry> { new TraktCountry { Name = "Australia", Code = "au" } }; using (var stringWriter = new StringWriter()) { var traktJsonWriter = new ArrayJsonWriter <ITraktCountry>(); string json = await traktJsonWriter.WriteArrayAsync(stringWriter, traktCountries); json.Should().Be(@"[{""name"":""Australia"",""code"":""au""}]"); } }
public async Task Test_GenreArrayJsonWriter_WriteArray_JsonWriter_SingleObject() { IEnumerable <ITraktGenre> traktGenres = new List <ITraktGenre> { new TraktGenre { Name = "genre name 1", Slug = "genre slug 1" } }; using (var stringWriter = new StringWriter()) using (var jsonWriter = new JsonTextWriter(stringWriter)) { var traktJsonWriter = new ArrayJsonWriter <ITraktGenre>(); await traktJsonWriter.WriteArrayAsync(jsonWriter, traktGenres); stringWriter.ToString().Should().Be(@"[{""name"":""genre name 1"",""slug"":""genre slug 1""}]"); } }