public void TestTraktUserCustomListItemsPostDefaultConstructor() { var userListItemsPost = new TraktUserCustomListItemsPost(); userListItemsPost.Movies.Should().BeNull(); userListItemsPost.Shows.Should().BeNull(); userListItemsPost.People.Should().BeNull(); }
public ITraktUserCustomListItemsPost Build() { ITraktUserCustomListItemsPost userCustomListItemsPost = new TraktUserCustomListItemsPost(); AddMovies(userCustomListItemsPost); AddShows(userCustomListItemsPost); AddPersons(userCustomListItemsPost); return(userCustomListItemsPost); }
public async Task RemoveShows(IEnumerable <ITraktShow> shows, TraktList list) { await PrepareForApiRequest(list.Owner); var result = await _traktClient.Users.RemoveCustomListItemsAsync( list.Owner.UserName, list.Slug, TraktUserCustomListItemsPost.Builder().AddShows(shows).Build() ); if (!result.IsSuccess) { throw result.Exception; } }
public async Task AddMovies(IList <ITraktMovie> movies, TraktList list) { await PrepareForApiRequest(list.Owner); var result = await _traktClient.Users.AddCustomListItemsAsync( list.Owner.UserName, list.Slug, TraktUserCustomListItemsPost.Builder().AddMovies(movies).Build() ); if (!result.IsSuccess) { throw result.Exception; } }
public override async Task <ITraktUserCustomListItemsPost> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktUserCustomListItemsPost))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var movieArrayJsonReader = new UserCustomListItemsPostMovieArrayJsonReader(); var showArrayJsonReader = new UserCustomListItemsPostShowArrayJsonReader(); var personArrayJsonReader = new PersonArrayJsonReader(); ITraktUserCustomListItemsPost customListItemsPost = new TraktUserCustomListItemsPost(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_PROPERTY_NAME_MOVIES: customListItemsPost.Movies = await movieArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_PROPERTY_NAME_SHOWS: customListItemsPost.Shows = await showArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken); break; case JsonProperties.USER_CUSTOM_LIST_ITEMS_POST_PROPERTY_NAME_PEOPLE: customListItemsPost.People = await personArrayJsonReader.ReadArrayAsync(jsonReader, cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(customListItemsPost); } return(await Task.FromResult(default(ITraktUserCustomListItemsPost))); }
public async Task AddShows(IList <ITraktShow> shows, TraktList list) { await PrepareForApiRequest(list.Owner); var result = await _traktClient.Users.AddCustomListItemsAsync( list.Owner.UserName, list.Slug, TraktUserCustomListItemsPost.Builder().AddShows(shows).Build() ); if (!result.IsSuccess) { throw result.Exception; } list.Items += result.Value.Added.Shows; }
public async Task RemoveMovies(IEnumerable <ITraktMovie> movies, TraktList list) { await PrepareForApiRequest(list.Owner); var result = await _traktClient.Users.RemoveCustomListItemsAsync( list.Owner.UserName, list.Slug, TraktUserCustomListItemsPost.Builder().AddMovies(movies).Build() ); if (!result.IsSuccess) { throw result.Exception; } list.Items -= result.Value.Deleted.Movies; }
public async Task Test_TraktUsersModule_AddCustomListItems_ArgumentExceptions() { string postJson = await TestUtility.SerializeObject(AddCustomListItemsPost); postJson.Should().NotBeNullOrEmpty(); TraktClient client = TestUtility.GetOAuthMockClient(ADD_CUSTOM_LIST_ITEMS_URI, postJson, CUSTOM_LIST_ITEMS_POST_RESPONSE_JSON); Func <Task <TraktResponse <ITraktUserCustomListItemsPostResponse> > > act = () => client.Users.AddCustomListItemsAsync(null, LIST_ID, AddCustomListItemsPost); act.Should().Throw <ArgumentNullException>(); act = () => client.Users.AddCustomListItemsAsync(string.Empty, LIST_ID, AddCustomListItemsPost); act.Should().Throw <ArgumentException>(); act = () => client.Users.AddCustomListItemsAsync("user name", LIST_ID, AddCustomListItemsPost); act.Should().Throw <ArgumentException>(); act = () => client.Users.AddCustomListItemsAsync(USERNAME, null, AddCustomListItemsPost); act.Should().Throw <ArgumentNullException>(); act = () => client.Users.AddCustomListItemsAsync(USERNAME, string.Empty, AddCustomListItemsPost); act.Should().Throw <ArgumentException>(); act = () => client.Users.AddCustomListItemsAsync(USERNAME, "list id", AddCustomListItemsPost); act.Should().Throw <ArgumentException>(); act = () => client.Users.AddCustomListItemsAsync(USERNAME, LIST_ID, null); act.Should().Throw <ArgumentNullException>(); act = () => client.Users.AddCustomListItemsAsync(USERNAME, LIST_ID, new TraktUserCustomListItemsPost()); act.Should().Throw <ArgumentException>(); ITraktUserCustomListItemsPost customListItems = new TraktUserCustomListItemsPost { Movies = new List <ITraktUserCustomListItemsPostMovie>(), Shows = new List <ITraktUserCustomListItemsPostShow>(), People = new List <ITraktPerson>() }; act = () => client.Users.AddCustomListItemsAsync(USERNAME, LIST_ID, customListItems); act.Should().Throw <ArgumentException>(); }
public void TestTraktUserCustomListItemsPostWriteJson() { var userListItemsPost = new TraktUserCustomListItemsPost { Movies = new List <TraktUserCustomListItemsPostMovie>() { new TraktUserCustomListItemsPostMovie { Ids = new TraktMovieIds { Trakt = 1 } }, new TraktUserCustomListItemsPostMovie { Ids = new TraktMovieIds { Imdb = "tt0000111" } } }, Shows = new List <TraktUserCustomListItemsPostShow>() { new TraktUserCustomListItemsPostShow { Ids = new TraktShowIds { Trakt = 1 } }, new TraktUserCustomListItemsPostShow { Seasons = new List <TraktUserCustomListItemsPostShowSeason>() { new TraktUserCustomListItemsPostShowSeason { Number = 1 } }, Ids = new TraktShowIds { Trakt = 1 } }, new TraktUserCustomListItemsPostShow { Seasons = new List <TraktUserCustomListItemsPostShowSeason>() { new TraktUserCustomListItemsPostShowSeason { Number = 1, Episodes = new List <TraktUserCustomListItemsPostShowEpisode>() { new TraktUserCustomListItemsPostShowEpisode { Number = 1 }, new TraktUserCustomListItemsPostShowEpisode { Number = 2 } } } }, Ids = new TraktShowIds { Trakt = 1 } } }, People = new List <TraktPerson>() { new TraktPerson { Name = "Jeff Bridges", Ids = new TraktPersonIds { Trakt = 2, Slug = "jeff-bridges", Imdb = "nm0000313", Tmdb = 1229, TvRage = 59067 } } } }; var strJson = JsonConvert.SerializeObject(userListItemsPost); strJson.Should().NotBeNullOrEmpty(); var userListItemsPostFromJson = JsonConvert.DeserializeObject <TraktUserCustomListItemsPost>(strJson); userListItemsPostFromJson.Should().NotBeNull(); userListItemsPostFromJson.Movies.Should().NotBeNull().And.HaveCount(2); userListItemsPostFromJson.Shows.Should().NotBeNull().And.HaveCount(3); userListItemsPostFromJson.People.Should().NotBeNull().And.HaveCount(1); var movies = userListItemsPostFromJson.Movies.ToArray(); movies[0].Ids.Should().NotBeNull(); movies[0].Ids.Trakt.Should().Be(1U); movies[0].Ids.Slug.Should().BeNullOrEmpty(); movies[0].Ids.Imdb.Should().BeNullOrEmpty(); movies[0].Ids.Tmdb.Should().BeNull(); movies[1].Ids.Should().NotBeNull(); movies[1].Ids.Trakt.Should().Be(0U); movies[1].Ids.Slug.Should().BeNullOrEmpty(); movies[1].Ids.Imdb.Should().Be("tt0000111"); movies[1].Ids.Tmdb.Should().BeNull(); var shows = userListItemsPostFromJson.Shows.ToArray(); shows[0].Ids.Should().NotBeNull(); shows[0].Ids.Trakt.Should().Be(1U); shows[0].Ids.Slug.Should().BeNullOrEmpty(); shows[0].Ids.Imdb.Should().BeNullOrEmpty(); shows[0].Ids.Tmdb.Should().BeNull(); shows[0].Ids.Tvdb.Should().BeNull(); shows[0].Ids.TvRage.Should().BeNull(); shows[0].Seasons.Should().BeNull(); shows[1].Ids.Should().NotBeNull(); shows[1].Ids.Trakt.Should().Be(1U); shows[1].Ids.Slug.Should().BeNullOrEmpty(); shows[1].Ids.Imdb.Should().BeNullOrEmpty(); shows[1].Ids.Tmdb.Should().BeNull(); shows[1].Ids.Tvdb.Should().BeNull(); shows[1].Ids.TvRage.Should().BeNull(); shows[1].Seasons.Should().NotBeNull().And.HaveCount(1); var show1Seasons = shows[1].Seasons.ToArray(); show1Seasons[0].Number.Should().Be(1); show1Seasons[0].Episodes.Should().BeNull(); shows[2].Ids.Should().NotBeNull(); shows[2].Ids.Trakt.Should().Be(1U); shows[2].Ids.Slug.Should().BeNullOrEmpty(); shows[2].Ids.Imdb.Should().BeNullOrEmpty(); shows[2].Ids.Tmdb.Should().BeNull(); shows[2].Ids.Tvdb.Should().BeNull(); shows[2].Ids.TvRage.Should().BeNull(); shows[2].Seasons.Should().NotBeNull().And.HaveCount(1); var show2Seasons = shows[2].Seasons.ToArray(); show2Seasons[0].Number.Should().Be(1); show2Seasons[0].Episodes.Should().NotBeNull().And.HaveCount(2); var show2SeasonEpisodes = show2Seasons[0].Episodes.ToArray(); show2SeasonEpisodes[0].Number.Should().Be(1); show2SeasonEpisodes[1].Number.Should().Be(2); var people = userListItemsPostFromJson.People.ToArray(); people[0].Name.Should().Be("Jeff Bridges"); people[0].Ids.Should().NotBeNull(); people[0].Ids.Trakt.Should().Be(2U); people[0].Ids.Slug.Should().Be("jeff-bridges"); people[0].Ids.Imdb.Should().Be("nm0000313"); people[0].Ids.Tmdb.Should().Be(1229U); people[0].Ids.TvRage.Should().Be(59067U); }