public void Test_TraktMovieFilter_WithCertifications() { var filter = new TraktMovieFilter(); filter.WithCertifications(null); filter.Certifications.Should().BeNull(); filter.WithCertifications(null, "cert1"); filter.Certifications.Should().NotBeNull().And.HaveCount(1); filter.AddCertifications("cert1", "cert2"); filter.Certifications.Should().NotBeNull().And.HaveCount(3); filter.WithCertifications(null); filter.Certifications.Should().BeNull(); filter.WithCertifications(null, "cert1"); filter.Certifications.Should().NotBeNull().And.HaveCount(1); filter.WithCertifications("cert1", "cert2"); filter.Certifications.Should().NotBeNull().And.HaveCount(2); filter.WithCertifications("cert1", "cert2", "cert3", "cert4"); filter.Certifications.Should().NotBeNull().And.HaveCount(4); filter.WithCertifications("cert5"); filter.Certifications.Should().NotBeNull().And.HaveCount(1); }
public void Test_TraktMovieFilter_Constructor() { var filter = new TraktMovieFilter("query", 2010, 2016, new string[] { "action", "drama" }, new string[] { "de", "en" }, new string[] { "gb", "us" }, new Range <int>(40, 100), new Range <int>(70, 90), new string[] { "cert1", "cert2" }); filter.Query.Should().Be("query"); filter.StartYear.Should().Be(2010); filter.EndYear.Should().Be(2016); filter.Genres.Should().NotBeNull().And.HaveCount(2); filter.Languages.Should().NotBeNull().And.HaveCount(2); filter.Countries.Should().NotBeNull().And.HaveCount(2); filter.Runtimes.Should().NotBeNull(); filter.Runtimes.Value.Begin.Should().Be(40); filter.Runtimes.Value.End.Should().Be(100); filter.Ratings.Should().NotBeNull(); filter.Ratings.Value.Begin.Should().Be(70); filter.Ratings.Value.End.Should().Be(90); filter.Certifications.Should().NotBeNull().And.HaveCount(2); }
// ------------------------------------------------------------- // Most Watched Movies public async Task <PaginationList <MostPWCMovie> > GetMostWatchedMoviesAsync(TraktExtendedInfo extendedInfo = null, TraktMovieFilter movieFilter = null, TraktTimePeriod period = null, int?whichPage = null, int?limitPerPage = null) { var traktResults = await Client.Movies.GetMostWatchedMoviesAsync(period, extendedInfo, movieFilter, whichPage, limitPerPage); var results = new PaginationList <MostPWCMovie> { CurrentPage = traktResults.Page, TotalPages = traktResults.PageCount, LimitPerPage = traktResults.Limit, TotalItemCount = traktResults.ItemCount, TotalUserCount = traktResults.UserCount }; results.Items = new ObservableCollection <MostPWCMovie>(); foreach (var traktMostWatchedMovie in traktResults) { var mostWatchedMovie = MovieModelConverter.Convert <MostPWCMovie>(traktMostWatchedMovie.Movie); if (mostWatchedMovie != null) { mostWatchedMovie.WatcherCount = traktMostWatchedMovie.WatcherCount.GetValueOrDefault(); mostWatchedMovie.PlayCount = traktMostWatchedMovie.PlayCount.GetValueOrDefault(); mostWatchedMovie.CollectedCount = traktMostWatchedMovie.CollectedCount.GetValueOrDefault(); results.Items.Add(mostWatchedMovie); } } return(results); }
// ------------------------------------------------------------- // Popular Movies public async Task <PaginationList <Movie> > GetPopularMoviesAsync(TraktExtendedInfo extendedInfo = null, TraktMovieFilter movieFilter = null, int?whichPage = null, int?limitPerPage = null) { var traktResults = await Client.Movies.GetPopularMoviesAsync(extendedInfo, movieFilter, whichPage, limitPerPage); var results = new PaginationList <Movie> { CurrentPage = traktResults.Page, TotalPages = traktResults.PageCount, LimitPerPage = traktResults.Limit, TotalItemCount = traktResults.ItemCount, TotalUserCount = traktResults.UserCount }; results.Items = new ObservableCollection <Movie>(); foreach (var traktPopularMovie in traktResults) { var popularMovie = MovieModelConverter.Convert <Movie>(traktPopularMovie); if (popularMovie != null) { results.Items.Add(popularMovie); } } return(results); }
public void Test_TraktMovieFilter_ClearCountries() { var filter = new TraktMovieFilter(); filter.Countries.Should().BeNull(); filter.WithCountries("gb", "us"); filter.Countries.Should().NotBeNull().And.HaveCount(2); filter.ClearCountries(); filter.Countries.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearLanguages() { var filter = new TraktMovieFilter(); filter.Languages.Should().BeNull(); filter.WithLanguages("de", "en"); filter.Languages.Should().NotBeNull().And.HaveCount(2); filter.ClearLanguages(); filter.Languages.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearCertifications() { var filter = new TraktMovieFilter(); filter.Certifications.Should().BeNull(); filter.WithCertifications("cert1", "cert2"); filter.Certifications.Should().NotBeNull().And.HaveCount(2); filter.ClearCertifications(); filter.Certifications.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearQuery() { var filter = new TraktMovieFilter(); filter.Query.Should().BeNull(); filter.WithQuery("query"); filter.Query.Should().Be("query"); filter.ClearQuery(); filter.Query.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearGenres() { var filter = new TraktMovieFilter(); filter.Genres.Should().BeNull(); filter.WithGenres("action", "drama"); filter.Genres.Should().NotBeNull().And.HaveCount(2); filter.ClearGenres(); filter.Genres.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearEndYear() { var filter = new TraktMovieFilter(); filter.EndYear.Should().NotHaveValue(); filter.WithEndYear(2016); filter.EndYear.Should().Be(2016); filter.ClearEndYear(); filter.EndYear.Should().NotHaveValue(); }
public void Test_TraktMovieFilter_ClearStartYear() { var filter = new TraktMovieFilter(); filter.StartYear.Should().NotHaveValue(); filter.WithStartYear(2010); filter.StartYear.Should().Be(2010); filter.ClearStartYear(); filter.StartYear.Should().NotHaveValue(); }
public void Test_TraktMovieFilter_ClearRatings() { var filter = new TraktMovieFilter(); filter.Ratings.Should().BeNull(); filter.WithRatings(60, 90); filter.Ratings.Should().NotBeNull(); filter.Ratings.Value.Begin.Should().Be(60); filter.Ratings.Value.End.Should().Be(90); filter.ClearRatings(); filter.Ratings.Should().BeNull(); }
public void Test_TraktMovieFilter_ClearRuntimes() { var filter = new TraktMovieFilter(); filter.Runtimes.Should().BeNull(); filter.WithRuntimes(30, 180); filter.Runtimes.Should().NotBeNull(); filter.Runtimes.Value.Begin.Should().Be(30); filter.Runtimes.Value.End.Should().Be(180); filter.ClearRuntimes(); filter.Runtimes.Should().BeNull(); }
public void TestTraktMovieFilterClearYears() { var filter = new TraktMovieFilter(); filter.StartYear.Should().NotHaveValue(); filter.EndYear.Should().NotHaveValue(); filter.WithYears(2010, 2016); filter.StartYear.Should().Be(2010); filter.EndYear.Should().Be(2016); filter.ClearYears(); filter.StartYear.Should().NotHaveValue(); filter.EndYear.Should().NotHaveValue(); }
public void Test_TraktMovieFilter_DefaultConstructor() { var filter = new TraktMovieFilter(); filter.Query.Should().BeNull(); filter.StartYear.Should().NotHaveValue(); filter.EndYear.Should().NotHaveValue(); filter.Genres.Should().BeNull(); filter.Languages.Should().BeNull(); filter.Countries.Should().BeNull(); filter.Runtimes.Should().BeNull(); filter.Ratings.Should().BeNull(); filter.Certifications.Should().BeNull(); filter.ToString().Should().NotBeNull().And.BeEmpty(); }
public void Test_TraktMovieFilter_Clear() { var filter = new TraktMovieFilter(); filter.WithQuery("query"); filter.Query.Should().Be("query"); filter.WithStartYear(2010); filter.StartYear.Should().Be(2010); filter.WithEndYear(2016); filter.EndYear.Should().Be(2016); filter.WithGenres("action", "drama"); filter.Genres.Should().NotBeNull().And.HaveCount(2); filter.WithLanguages("de", "en"); filter.Languages.Should().NotBeNull().And.HaveCount(2); filter.WithCountries("gb", "us"); filter.Countries.Should().NotBeNull().And.HaveCount(2); filter.WithRuntimes(30, 180); filter.Runtimes.Should().NotBeNull(); filter.Runtimes.Value.Begin.Should().Be(30); filter.Runtimes.Value.End.Should().Be(180); filter.WithRatings(60, 90); filter.Ratings.Should().NotBeNull(); filter.Ratings.Value.Begin.Should().Be(60); filter.Ratings.Value.End.Should().Be(90); filter.WithCertifications("cert1", "cert2"); filter.Certifications.Should().NotBeNull().And.HaveCount(2); filter.Clear(); filter.Query.Should().BeNull(); filter.StartYear.Should().NotHaveValue(); filter.EndYear.Should().NotHaveValue(); filter.Genres.Should().BeNull(); filter.Languages.Should().BeNull(); filter.Countries.Should().BeNull(); filter.Runtimes.Should().BeNull(); filter.Ratings.Should().BeNull(); filter.Certifications.Should().BeNull(); filter.ToString().Should().NotBeNull().And.BeEmpty(); }
/// <summary> /// Gets popular movies. /// <para>OAuth authorization not required.</para> /// <para> /// See <a href="http://docs.trakt.apiary.io/#reference/movies/popular/get-popular-movies">"Trakt API Doc - Movies: Popular"</a> for more information. /// </para> /// </summary> /// <param name="extendedInfo"> /// The extended info, which determines how much data about the movies should be queried. /// See also <seealso cref="TraktExtendedInfo" />. /// </param> /// <param name="filter">Optional filters for genres, languages, year, runtimes, ratings, etc. See also <seealso cref="TraktMovieFilter" />.</param> /// <param name="pagedParameters"></param> /// <param name="cancellationToken"></param> /// <returns> /// An <see cref="TraktPagedResponse{ITraktMovie}"/> instance containing the queried popular movies and which also /// contains the queried page number, the page's item count, maximum page count and maximum item count. /// <para> /// See also <seealso cref="TraktPagedResponse{ListItem}" /> and <seealso cref="ITraktMovie" />. /// </para> /// </returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> public Task <TraktPagedResponse <ITraktMovie> > GetPopularMoviesAsync(TraktExtendedInfo extendedInfo = null, TraktMovieFilter filter = null, TraktPagedParameters pagedParameters = null, CancellationToken cancellationToken = default) { var requestHandler = new RequestHandler(Client); return(requestHandler.ExecutePagedRequestAsync(new MoviesPopularRequest { ExtendedInfo = extendedInfo, Filter = filter, Page = pagedParameters?.Page, Limit = pagedParameters?.Limit }, cancellationToken)); }
public void Test_TraktMovieFilter_ToString() { var filter = new TraktMovieFilter(); filter.ToString().Should().NotBeNull().And.BeEmpty(); filter.WithQuery("query"); filter.ToString().Should().Be("query=query"); var startYear = 2010; var endYear = 2016; var years = $"{startYear}-{endYear}"; filter.WithYears(startYear, endYear); filter.ToString().Should().Be($"years={years}&query=query"); filter.WithGenres("action", "drama", "fantasy"); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&query=query"); filter.WithLanguages("de", "en", "es"); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&languages=de,en,es&query=query"); filter.WithCountries("gb", "us", "fr"); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr&query=query"); var runtimeBegin = 50; var runtimeEnd = 100; filter.WithRuntimes(runtimeBegin, runtimeEnd); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr" + $"&runtimes={runtimeBegin}-{runtimeEnd}&query=query"); var ratingBegin = 70; var ratingEnd = 90; filter.WithRatings(ratingBegin, ratingEnd); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr" + $"&runtimes={runtimeBegin}-{runtimeEnd}&ratings={ratingBegin}-{ratingEnd}&query=query"); filter.WithCertifications("cert1", "cert2", "cert3"); filter.ToString().Should().Be($"years={years}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr" + $"&runtimes={runtimeBegin}-{runtimeEnd}&ratings={ratingBegin}-{ratingEnd}&query=query" + $"&certifications=cert1,cert2,cert3"); }
public void TestTraktMovieFilterAddCertifications() { var filter = new TraktMovieFilter(); filter.AddCertifications(null); filter.Certifications.Should().BeNull(); filter.AddCertifications(null, "cert1"); filter.Certifications.Should().NotBeNull().And.HaveCount(1); filter.AddCertifications("cert1", "cert2", "cert3"); filter.Certifications.Should().NotBeNull().And.HaveCount(4); filter.AddCertifications("cert4"); filter.Certifications.Should().NotBeNull().And.HaveCount(5); filter.AddCertifications(null); filter.Certifications.Should().NotBeNull().And.HaveCount(5); filter.AddCertifications("cert5", "cert6"); filter.Certifications.Should().NotBeNull().And.HaveCount(7); }
/// <summary> /// Gets the most collected movies. /// <para>OAuth authorization not required.</para> /// <para> /// See <a href="http://docs.trakt.apiary.io/#reference/movies/watched/get-the-most-collected-movies">"Trakt API Doc - Movies: Collected"</a> for more information. /// </para> /// </summary> /// <param name="period">The time period, for which the most collected movies should be queried. See also <seealso cref="TraktTimePeriod" />.</param> /// <param name="extendedInfo"> /// The extended info, which determines how much data about the movies should be queried. /// See also <seealso cref="TraktExtendedInfo" />. /// </param> /// <param name="filter">Optional filters for genres, languages, year, runtimes, ratings, etc. See also <seealso cref="TraktMovieFilter" />.</param> /// <param name="pagedParameters"></param> /// <param name="cancellationToken"></param> /// <returns> /// An <see cref="TraktPagedResponse{ITraktMostPWCMovie}"/> instance containing the queried most collected movies and which also /// contains the queried page number, the page's item count, maximum page count and maximum item count. /// <para> /// See also <seealso cref="TraktPagedResponse{ListItem}" /> and <seealso cref="ITraktMostPWCMovie" />. /// </para> /// </returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> public Task <TraktPagedResponse <ITraktMostPWCMovie> > GetMostCollectedMoviesAsync(TraktTimePeriod period = null, TraktExtendedInfo extendedInfo = null, TraktMovieFilter filter = null, TraktPagedParameters pagedParameters = null, CancellationToken cancellationToken = default) { var requestHandler = new RequestHandler(Client); return(requestHandler.ExecutePagedRequestAsync(new MoviesMostCollectedRequest { Period = period, ExtendedInfo = extendedInfo, Filter = filter, Page = pagedParameters?.Page, Limit = pagedParameters?.Limit }, cancellationToken)); }
public async Task <TraktPaginationListResult <TraktMostAnticipatedMovie> > GetMostAnticipatedMoviesAsync(TraktExtendedInfo extendedInfo = null, TraktMovieFilter filter = null, int?page = null, int?limitPerPage = null) => await QueryAsync(new TraktMoviesMostAnticipatedRequest(Client) { ExtendedInfo = extendedInfo, Filter = filter, PaginationOptions = new TraktPaginationOptions(page, limitPerPage) });
public void Test_TraktMovieFilter_GetParameters() { var filter = new TraktMovieFilter(); filter.GetParameters().Should().NotBeNull().And.BeEmpty(); filter.WithQuery("query"); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" } }); var startYear = 2010; var endYear = 2016; var years = $"{startYear}-{endYear}"; filter.WithYears(startYear, endYear); filter.GetParameters().Should().NotBeNull().And.HaveCount(2); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years } }); filter.WithGenres("action", "drama", "fantasy"); filter.GetParameters().Should().NotBeNull().And.HaveCount(3); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" } }); filter.WithLanguages("de", "en", "es"); filter.GetParameters().Should().NotBeNull().And.HaveCount(4); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" } }); filter.WithCountries("gb", "us", "fr"); filter.GetParameters().Should().NotBeNull().And.HaveCount(5); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" }, { "countries", "gb,us,fr" } }); var runtimeBegin = 50; var runtimeEnd = 100; filter.WithRuntimes(runtimeBegin, runtimeEnd); filter.GetParameters().Should().NotBeNull().And.HaveCount(6); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" }, { "countries", "gb,us,fr" }, { "runtimes", $"{runtimeBegin}-{runtimeEnd}" } }); var ratingBegin = 70; var ratingEnd = 90; filter.WithRatings(ratingBegin, ratingEnd); filter.GetParameters().Should().NotBeNull().And.HaveCount(7); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" }, { "countries", "gb,us,fr" }, { "runtimes", $"{runtimeBegin}-{runtimeEnd}" }, { "ratings", $"{ratingBegin}-{ratingEnd}" } }); filter.WithCertifications("cert1", "cert2", "cert3"); filter.GetParameters().Should().NotBeNull().And.HaveCount(8); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", years }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" }, { "countries", "gb,us,fr" }, { "runtimes", $"{runtimeBegin}-{runtimeEnd}" }, { "ratings", $"{ratingBegin}-{ratingEnd}" }, { "certifications", "cert1,cert2,cert3" } }); }