public void Test_TraktPost_SyncWatchlistPostBuilder_WithEpisode() { ITraktEpisode episode = new TraktEpisode { Ids = new TraktEpisodeIds { Trakt = 1, Imdb = "ttepisodetitle", Tmdb = 1, Tvdb = 1, TvRage = 1 } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .WithEpisode(episode) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Episodes.Should().NotBeNull().And.HaveCount(1); ITraktSyncWatchlistPostEpisode postEpisode = syncWatchlistPost.Episodes.ToArray()[0]; postEpisode.Ids.Should().NotBeNull(); postEpisode.Ids.Trakt.Should().Be(1U); postEpisode.Ids.Imdb.Should().Be("ttepisodetitle"); postEpisode.Ids.Tmdb.Should().Be(1U); postEpisode.Ids.Tvdb.Should().Be(1U); postEpisode.Ids.TvRage.Should().Be(1U); syncWatchlistPost.Movies.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Shows.Should().NotBeNull().And.BeEmpty(); }
public void Test_TraktPost_SyncWatchlistPostBuilder_WithMovie() { ITraktMovie movie = new TraktMovie { Title = "movie title", Year = 2020, Ids = new TraktMovieIds { Trakt = 1, Slug = "movie-title", Imdb = "ttmovietitle", Tmdb = 1 } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .WithMovie(movie) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Movies.Should().NotBeNull().And.HaveCount(1); ITraktSyncWatchlistPostMovie postMovie = syncWatchlistPost.Movies.ToArray()[0]; postMovie.Title = "movie title"; postMovie.Year = 2020; postMovie.Ids.Should().NotBeNull(); postMovie.Ids.Trakt.Should().Be(1U); postMovie.Ids.Slug.Should().Be("movie-title"); postMovie.Ids.Imdb.Should().Be("ttmovietitle"); postMovie.Ids.Tmdb.Should().Be(1U); syncWatchlistPost.Shows.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Episodes.Should().NotBeNull().And.BeEmpty(); }
public void Test_TraktPost_SyncWatchlistPostBuilder_WithMovies() { var movies = new List <ITraktMovie> { new TraktMovie { Title = "movie 1 title", Year = 2020, Ids = new TraktMovieIds { Trakt = 1, Slug = "movie-1-title", Imdb = "ttmovie1title", Tmdb = 1 } }, new TraktMovie { Title = "movie 2 title", Year = 2020, Ids = new TraktMovieIds { Trakt = 2, Slug = "movie-2-title", Imdb = "ttmovie2title", Tmdb = 2 } } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .WithMovies(movies) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Movies.Should().NotBeNull().And.HaveCount(2); ITraktSyncWatchlistPostMovie[] postMovies = syncWatchlistPost.Movies.ToArray(); postMovies[0].Title = "movie 1 title"; postMovies[0].Year = 2020; postMovies[0].Ids.Should().NotBeNull(); postMovies[0].Ids.Trakt.Should().Be(1U); postMovies[0].Ids.Slug.Should().Be("movie-1-title"); postMovies[0].Ids.Imdb.Should().Be("ttmovie1title"); postMovies[0].Ids.Tmdb.Should().Be(1U); postMovies[1].Title = "movie 2 title"; postMovies[1].Year = 2020; postMovies[1].Ids.Should().NotBeNull(); postMovies[1].Ids.Trakt.Should().Be(2U); postMovies[1].Ids.Slug.Should().Be("movie-2-title"); postMovies[1].Ids.Imdb.Should().Be("ttmovie2title"); postMovies[1].Ids.Tmdb.Should().Be(2U); syncWatchlistPost.Shows.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Episodes.Should().NotBeNull().And.BeEmpty(); }
public void Test_TraktPost_SyncWatchlistPostBuilder_Empty_Build() { ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost().Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Movies.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Shows.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Episodes.Should().NotBeNull().And.BeEmpty(); }
public TraktSyncModule_Tests() { AddCollectionItemsPost = SetupAddCollectionItemsPost(); AddRatingsPost = SetupAddRatingsPost(); AddHistoryPost = SetupAddHistoryPost(); AddWatchlistPost = SetupAddWatchlistPost(); RemoveCollectionItemsPost = SetupRemoveCollectionItemsPost(); RemoveRatingsPost = SetupRemoveRatingsPost(); RemoveHistoryPost = SetupRemoveHistoryPost(); RemoveWatchlistPost = SetupRemoveWatchlistPost(); }
public void Test_TraktPost_SyncWatchlistPostBuilder_WithEpisodes() { var episodes = new List <ITraktEpisode> { new TraktEpisode { Ids = new TraktEpisodeIds { Trakt = 1, Imdb = "ttepisode1title", Tmdb = 1, Tvdb = 1, TvRage = 1 } }, new TraktEpisode { Ids = new TraktEpisodeIds { Trakt = 2, Imdb = "ttepisode2title", Tmdb = 2, Tvdb = 2, TvRage = 2 } } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .WithEpisodes(episodes) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Episodes.Should().NotBeNull().And.HaveCount(2); ITraktSyncWatchlistPostEpisode[] postEpisodes = syncWatchlistPost.Episodes.ToArray(); postEpisodes[0].Ids.Should().NotBeNull(); postEpisodes[0].Ids.Trakt.Should().Be(1U); postEpisodes[0].Ids.Imdb.Should().Be("ttepisode1title"); postEpisodes[0].Ids.Tmdb.Should().Be(1U); postEpisodes[0].Ids.Tvdb.Should().Be(1U); postEpisodes[0].Ids.TvRage.Should().Be(1U); postEpisodes[1].Ids.Should().NotBeNull(); postEpisodes[1].Ids.Trakt.Should().Be(2U); postEpisodes[1].Ids.Imdb.Should().Be("ttepisode2title"); postEpisodes[1].Ids.Tmdb.Should().Be(2U); postEpisodes[1].Ids.Tvdb.Should().Be(2U); postEpisodes[1].Ids.TvRage.Should().Be(2U); syncWatchlistPost.Movies.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Shows.Should().NotBeNull().And.BeEmpty(); }
private void AddEpisodes(ITraktSyncWatchlistPost syncWatchlistPost) { if (syncWatchlistPost.Episodes == null) { syncWatchlistPost.Episodes = new List <ITraktSyncWatchlistPostEpisode>(); } foreach (ITraktEpisode episode in _episodes) { (syncWatchlistPost.Episodes as List <ITraktSyncWatchlistPostEpisode>).Add(CreateSyncWatchlistPostEpisode(episode)); } }
private void AddMovies(ITraktSyncWatchlistPost syncWatchlistPost) { if (syncWatchlistPost.Movies == null) { syncWatchlistPost.Movies = new List <ITraktSyncWatchlistPostMovie>(); } foreach (ITraktMovie movie in _movies) { (syncWatchlistPost.Movies as List <ITraktSyncWatchlistPostMovie>).Add(CreateSyncWatchlistPostMovie(movie)); } }
public void Test_TraktPost_SyncWatchlistPostBuilder_AddShowAndSeasons() { ITraktShow show = new TraktShow { Title = "show title", Year = 2020, Ids = new TraktShowIds { Trakt = 1, Slug = "show-title", Imdb = "ttshowtitle", Tmdb = 1, Tvdb = 1, TvRage = 1 } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .AddShowAndSeasons(show).WithSeasons(1, 2, 3) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Shows.Should().NotBeNull().And.HaveCount(1); ITraktSyncWatchlistPostShow postShow = syncWatchlistPost.Shows.ToArray()[0]; postShow.Title = "show title"; postShow.Year = 2020; postShow.Ids.Should().NotBeNull(); postShow.Ids.Trakt.Should().Be(1U); postShow.Ids.Slug.Should().Be("show-title"); postShow.Ids.Imdb.Should().Be("ttshowtitle"); postShow.Ids.Tmdb.Should().Be(1U); postShow.Ids.Tvdb.Should().Be(1U); postShow.Ids.TvRage.Should().Be(1U); postShow.Seasons.Should().NotBeNull().And.HaveCount(3); ITraktSyncWatchlistPostShowSeason[] seasons = postShow.Seasons.ToArray(); seasons[0].Number.Should().Be(1); seasons[0].Episodes.Should().BeNull(); seasons[1].Number.Should().Be(2); seasons[1].Episodes.Should().BeNull(); seasons[2].Number.Should().Be(3); seasons[2].Episodes.Should().BeNull(); syncWatchlistPost.Movies.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Episodes.Should().NotBeNull().And.BeEmpty(); }
private void ValidateWatchlistPost(ITraktSyncWatchlistPost watchlistPost) { if (watchlistPost == null) { throw new ArgumentNullException(nameof(watchlistPost), "watchlist post must not be null"); } IEnumerable <ITraktSyncWatchlistPostMovie> movies = watchlistPost.Movies; IEnumerable <ITraktSyncWatchlistPostShow> shows = watchlistPost.Shows; IEnumerable <ITraktSyncWatchlistPostEpisode> episodes = watchlistPost.Episodes; bool bHasNoMovies = movies == null || !movies.Any(); bool bHasNoShows = shows == null || !shows.Any(); bool bHasNoEpisodes = episodes == null || !episodes.Any(); if (bHasNoMovies && bHasNoShows && bHasNoEpisodes) { throw new ArgumentException("no watchlist items set"); } }
private void AddShows(ITraktSyncWatchlistPost syncWatchlistPost) { if (syncWatchlistPost.Shows == null) { syncWatchlistPost.Shows = new List <ITraktSyncWatchlistPostShow>(); } foreach (ITraktShow show in _shows) { (syncWatchlistPost.Shows as List <ITraktSyncWatchlistPostShow>).Add(CreateSyncWatchlistPostShow(show)); } foreach (PostBuilderObjectWithSeasons <ITraktShow, IEnumerable <int> > showEntry in _showsWithSeasons.ShowsWithSeasons) { (syncWatchlistPost.Shows as List <ITraktSyncWatchlistPostShow>).Add(CreateSyncWatchlistPostShowWithSeasons(showEntry.Object, showEntry.Seasons)); } foreach (PostBuilderObjectWithSeasons <ITraktShow, PostSeasons> showEntry in _showsWithSeasonsCollection.ShowsWithSeasonsCollection) { (syncWatchlistPost.Shows as List <ITraktSyncWatchlistPostShow>).Add(CreateSyncWatchlistPostShowWithSeasonsCollection(showEntry.Object, showEntry.Seasons)); } }
/// <summary>Initializes a new instance of the <see cref="TraktSyncWatchlistPostBuilder" /> class.</summary> public TraktSyncWatchlistPostBuilder() { _watchlistPost = new TraktSyncWatchlistPost(); }
/// <summary> /// Removes items from the user's watchlist. Accepts shows, seasons, episodes and movies. /// <para>OAuth authorization required.</para> /// <para> /// See <a href="http://docs.trakt.apiary.io/#reference/sync/remove-from-watchlist/remove-items-from-watchlists">"Trakt API Doc - Sync: Remove from Watchlist"</a> for more information. /// </para> /// <para> /// It is recommended to use the <see cref="ITraktSyncWatchlistPostBuilder" /> to create an instance /// of the required <see cref="ITraktSyncWatchlistPost" />. /// See also <seealso cref="TraktPost.NewSyncWatchlistPost()" />. /// </para> /// </summary> /// <param name="watchlistRemovePost">An <see cref="ITraktSyncWatchlistPost" /> instance containing all shows, seasons, episodes and movies, which should be removed.</param> /// <param name="cancellationToken"> /// Propagates notification that the request should be canceled.<para/> /// If provided, the exception <see cref="OperationCanceledException" /> should be catched. /// </param> /// <returns>An <see cref="ITraktSyncWatchlistRemovePostResponse" /> instance, which contains information about which items were deleted and not found.</returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> /// <exception cref="ArgumentNullException">Thrown if the given watchlist remove post is null.</exception> /// <exception cref="ArgumentException">Thrown, if the given watchlist remove post is empty.</exception> public Task <TraktResponse <ITraktSyncWatchlistRemovePostResponse> > RemoveWatchlistItemsAsync(ITraktSyncWatchlistPost watchlistRemovePost, CancellationToken cancellationToken = default) { ValidateWatchlistPost(watchlistRemovePost); var requestHandler = new RequestHandler(Client); return(requestHandler.ExecuteSingleItemRequestAsync(new SyncWatchlistRemoveRequest { RequestBody = watchlistRemovePost }, cancellationToken)); }
public void Test_TraktPost_SyncWatchlistPostBuilder_WithShows() { var shows = new List <ITraktShow> { new TraktShow { Title = "show 1 title", Year = 2020, Ids = new TraktShowIds { Trakt = 1, Slug = "show-1-title", Imdb = "ttshow1title", Tmdb = 1, Tvdb = 1, TvRage = 1 } }, new TraktShow { Title = "show 2 title", Year = 2020, Ids = new TraktShowIds { Trakt = 2, Slug = "show-2-title", Imdb = "ttshow2title", Tmdb = 2, Tvdb = 2, TvRage = 2 } } }; ITraktSyncWatchlistPost syncWatchlistPost = TraktPost.NewSyncWatchlistPost() .WithShows(shows) .Build(); syncWatchlistPost.Should().NotBeNull(); syncWatchlistPost.Shows.Should().NotBeNull().And.HaveCount(2); ITraktSyncWatchlistPostShow[] postShows = syncWatchlistPost.Shows.ToArray(); postShows[0].Title = "show 1 title"; postShows[0].Year = 2020; postShows[0].Ids.Should().NotBeNull(); postShows[0].Ids.Trakt.Should().Be(1U); postShows[0].Ids.Slug.Should().Be("show-1-title"); postShows[0].Ids.Imdb.Should().Be("ttshow1title"); postShows[0].Ids.Tmdb.Should().Be(1U); postShows[0].Ids.Tvdb.Should().Be(1U); postShows[0].Ids.TvRage.Should().Be(1U); postShows[0].Seasons.Should().BeNull(); postShows[1].Title = "show 2 title"; postShows[1].Year = 2020; postShows[1].Ids.Should().NotBeNull(); postShows[1].Ids.Trakt.Should().Be(2U); postShows[1].Ids.Slug.Should().Be("show-2-title"); postShows[1].Ids.Imdb.Should().Be("ttshow2title"); postShows[1].Ids.Tmdb.Should().Be(2U); postShows[1].Ids.Tvdb.Should().Be(2U); postShows[1].Ids.TvRage.Should().Be(2U); postShows[1].Seasons.Should().BeNull(); syncWatchlistPost.Movies.Should().NotBeNull().And.BeEmpty(); syncWatchlistPost.Episodes.Should().NotBeNull().And.BeEmpty(); }