public void TestTraktMovieFilterToString() { var filter = new TraktSearchFilter(); filter.ToString().Should().NotBeNull().And.BeEmpty(); var year = 2016; filter.WithYears(year); filter.ToString().Should().Be($"years={year}"); filter.WithGenres("action", "drama", "fantasy"); filter.ToString().Should().Be($"years={year}&genres=action,drama,fantasy"); filter.WithLanguages("de", "en", "es"); filter.ToString().Should().Be($"years={year}&genres=action,drama,fantasy&languages=de,en,es"); filter.WithCountries("gb", "us", "fr"); filter.ToString().Should().Be($"years={year}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr"); var runtimeBegin = 50; var runtimeEnd = 100; filter.WithRuntimes(runtimeBegin, runtimeEnd); filter.ToString().Should().Be($"years={year}&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.ToString().Should().Be($"years={year}&genres=action,drama,fantasy&languages=de,en,es&countries=gb,us,fr" + $"&runtimes={runtimeBegin}-{runtimeEnd}&ratings={ratingBegin}-{ratingEnd}"); }
public void TestTraktSearchFilterHasValues() { var filter = new TraktSearchFilter(); filter.HasValues.Should().BeFalse(); filter.WithStartYear(2010); filter.StartYear.Should().Be(2010); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithEndYear(2016); filter.EndYear.Should().Be(2016); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithGenres("action", "drama"); filter.Genres.Should().NotBeNull().And.HaveCount(2); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithLanguages("de", "en"); filter.Languages.Should().NotBeNull().And.HaveCount(2); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithCountries("gb", "us"); filter.Countries.Should().NotBeNull().And.HaveCount(2); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithRuntimes(30, 180); filter.Runtimes.Should().NotBeNull(); filter.Runtimes.Value.Begin.Should().Be(30); filter.Runtimes.Value.End.Should().Be(180); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); filter.WithRatings(60, 90); filter.Ratings.Should().NotBeNull(); filter.Ratings.Value.Begin.Should().Be(60); filter.Ratings.Value.End.Should().Be(90); filter.HasValues.Should().BeTrue(); filter.Clear(); filter.HasValues.Should().BeFalse(); }
public void TestTraktSearchFilterClearCountries() { var filter = new TraktSearchFilter(); filter.Countries.Should().BeNull(); filter.WithCountries("gb", "us"); filter.Countries.Should().NotBeNull().And.HaveCount(2); filter.ClearCountries(); filter.Countries.Should().BeNull(); }
public void TestTraktSearchFilterClearStartYear() { var filter = new TraktSearchFilter(); filter.StartYear.Should().NotHaveValue(); filter.WithStartYear(2010); filter.StartYear.Should().Be(2010); filter.ClearStartYear(); filter.StartYear.Should().NotHaveValue(); }
public void TestTraktSearchFilterClearGenres() { var filter = new TraktSearchFilter(); filter.Genres.Should().BeNull(); filter.WithGenres("action", "drama"); filter.Genres.Should().NotBeNull().And.HaveCount(2); filter.ClearGenres(); filter.Genres.Should().BeNull(); }
public void TestTraktSearchFilterClearLanguages() { var filter = new TraktSearchFilter(); filter.Languages.Should().BeNull(); filter.WithLanguages("de", "en"); filter.Languages.Should().NotBeNull().And.HaveCount(2); filter.ClearLanguages(); filter.Languages.Should().BeNull(); }
public void TestTraktSearchFilterClearEndYear() { var filter = new TraktSearchFilter(); filter.EndYear.Should().NotHaveValue(); filter.WithEndYear(2016); filter.EndYear.Should().Be(2016); filter.ClearEndYear(); filter.EndYear.Should().NotHaveValue(); }
public void TestTraktMovieFilterDefaultConstructor() { var filter = new TraktSearchFilter(); filter.Years.Should().Be(0); filter.Genres.Should().BeNull(); filter.Languages.Should().BeNull(); filter.Countries.Should().BeNull(); filter.Runtimes.Should().BeNull(); filter.Ratings.Should().BeNull(); filter.ToString().Should().NotBeNull().And.BeEmpty(); }
public void TestTraktSearchFilterDefaultConstructor() { var filter = new TraktSearchFilter(); 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.ToString().Should().NotBeNull().And.BeEmpty(); }
public void TestTraktSearchFilterClearRatings() { var filter = new TraktSearchFilter(); 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 TestTraktSearchFilterClearRuntimes() { var filter = new TraktSearchFilter(); 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 TestTraktSearchFilterClearYears() { var filter = new TraktSearchFilter(); 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 TestTraktMovieFilterConstructor() { var filter = new TraktSearchFilter(2016, new string[] { "action", "drama" }, new string[] { "de", "en" }, new string[] { "gb", "us" }, new Range <int>(40, 100), new Range <int>(70, 90)); filter.Years.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); }
public void TestTraktMovieFilterClear() { var filter = new TraktSearchFilter(); filter.WithYears(2016); filter.Years.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.Clear(); filter.Years.Should().Be(0); filter.Genres.Should().BeNull(); filter.Languages.Should().BeNull(); filter.Countries.Should().BeNull(); filter.Runtimes.Should().BeNull(); filter.Ratings.Should().BeNull(); filter.ToString().Should().NotBeNull().And.BeEmpty(); }
/// <summary> /// Searches for movies, shows, episodes, people and / or lists with the given search query. /// <para>OAuth authorization not required.</para> /// <para> /// See <a href="http://docs.trakt.apiary.io/#reference/search/text-query/get-text-query-results">"Trakt API Doc - Search: Text Query"</a> for more information. /// </para> /// </summary> /// <param name="searchResultTypes"> /// The object type(s), for which will be searched. See also <seealso cref="TraktSearchResultType" />. /// Multiple <see cref="TraktSearchResultType" /> values can be combined with a binary operator, like this: TraktSearchResultType.Movie | TraktSearchResultType.Show. /// </param> /// <param name="searchQuery">The query, for which will be searched.</param> /// <param name="searchFields">Determines the text fields, which will be searched. See also <seealso cref="TraktSearchField" />.</param> /// <param name="filter">Optional filter for genres, year, runtimes, ratings, etc. See also <seealso cref="TraktSearchFilter" />.</param> /// <param name="extendedInfo"> /// The extended info, which determines how much data about the movies, shows, episodes, people and / or lists should be queried. /// See also <seealso cref="TraktExtendedInfo" />. /// </param> /// <param name="pagedParameters"></param> /// <param name="cancellationToken"></param> /// <returns> /// An <see cref="TraktPagedResponse{ITraktSearchResult}"/> instance containing the found movies, shows, episodes, people and / or lists 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="ITraktSearchResult" />. /// </para> /// </returns> /// <exception cref="TraktException">Thrown, if the request fails.</exception> /// <exception cref="ArgumentException"> /// Thrown, if the given searchQuery is null, empty or contains spaces. /// Thrown, if the given searchResultType is unspecified. /// </exception> /// <exception cref="ArgumentNullException">Thrown, if the given searchResultType is null</exception> public Task <TraktPagedResponse <ITraktSearchResult> > GetTextQueryResultsAsync(TraktSearchResultType searchResultTypes, string searchQuery, TraktSearchField searchFields = null, TraktSearchFilter filter = null, TraktExtendedInfo extendedInfo = null, TraktPagedParameters pagedParameters = null, CancellationToken cancellationToken = default) { var requestHandler = new RequestHandler(Client); return(requestHandler.ExecutePagedRequestAsync(new SearchTextQueryRequest { ResultTypes = searchResultTypes, Query = searchQuery, SearchFields = searchFields, Filter = filter, ExtendedInfo = extendedInfo, Page = pagedParameters?.Page, Limit = pagedParameters?.Limit }, cancellationToken)); }
public async Task <TraktPaginationListResult <TraktSearchResult> > GetTextQueryResultsAsync(TraktSearchResultType searchResultTypes, [NotNull] string searchQuery, TraktSearchField searchFields = null, TraktSearchFilter filter = null, TraktExtendedInfo extendedInfo = null, int?page = null, int?limitPerPage = null) { Validate(searchResultTypes); Validate(searchQuery); return(await QueryAsync(new TraktSearchTextQueryRequest(Client) { ResultTypes = searchResultTypes, Query = searchQuery, SearchFields = searchFields, Filter = filter, ExtendedInfo = extendedInfo, PaginationOptions = new TraktPaginationOptions(page, limitPerPage) })); }
public void TestTraktMovieFilterGetParameters() { var filter = new TraktSearchFilter(); filter.GetParameters().Should().NotBeNull().And.BeEmpty(); var year = 2016; filter.WithYears(year); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" } }); filter.WithGenres("action", "drama", "fantasy"); filter.GetParameters().Should().NotBeNull().And.HaveCount(2); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" }, { "genres", "action,drama,fantasy" } }); filter.WithLanguages("de", "en", "es"); filter.GetParameters().Should().NotBeNull().And.HaveCount(3); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" } }); filter.WithCountries("gb", "us", "fr"); filter.GetParameters().Should().NotBeNull().And.HaveCount(4); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" }, { "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(5); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" }, { "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(6); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016" }, { "genres", "action,drama,fantasy" }, { "languages", "de,en,es" }, { "countries", "gb,us,fr" }, { "runtimes", $"{runtimeBegin}-{runtimeEnd}" }, { "ratings", $"{ratingBegin}-{ratingEnd}" } }); }