public void Test_TraktSearchFilterBuilder_GetParameters() { TraktShowStatus state1 = TraktShowStatus.ReturningSeries; TraktShowStatus state2 = TraktShowStatus.InProduction; ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter .WithQuery("query") .WithYears(2016, 2018) .WithGenres("action", "drama") .WithLanguages("de", "en") .WithCountries("gb", "us") .WithRuntimes(30, 180) .WithRatings(60, 90) .WithCertifications("pg-13", "nr") .WithNetworks("abc", "fox") .WithStates(state1, state2) .Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(10); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" }, { "years", "2016-2018" }, { "genres", "action,drama" }, { "languages", "de,en" }, { "countries", "gb,us" }, { "runtimes", "30-180" }, { "ratings", "60-90" }, { "certifications", "pg-13,nr" }, { "networks", "abc,fox" }, { "status", $"{state1.UriName},{state2.UriName}" } }); }
public void Test_TraktSearchFilterBuilder_ToString_With_States() { TraktShowStatus state1 = TraktShowStatus.ReturningSeries; TraktShowStatus state2 = TraktShowStatus.InProduction; ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithStates(state1, state2).Build(); filter.ToString().Should().Be($"status={state1.UriName},{state2.UriName}"); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Genres() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithGenres("action", "drama").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "genres", "action,drama" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Query() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithQuery("query").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "query", "query" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Networks() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithNetworks("abc", "fox").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "networks", "abc,fox" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Certifications() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithCertifications("pg-13", "nr").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "certifications", "pg-13,nr" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Ratings() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithRatings(60, 90).Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "ratings", "60-90" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Runtimes() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithRuntimes(30, 180).Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "runtimes", "30-180" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Countries() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithCountries("gb", "us").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "countries", "gb,us" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Languages() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithLanguages("de", "en").Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "languages", "de,en" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_Years() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithYears(2016, 2018).Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "years", "2016-2018" } }); }
public void Test_TraktSearchFilterBuilder_GetParameters_With_States() { TraktShowStatus state1 = TraktShowStatus.ReturningSeries; TraktShowStatus state2 = TraktShowStatus.InProduction; ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithStates(state1, state2).Build(); filter.GetParameters().Should().NotBeNull().And.HaveCount(1); filter.GetParameters().Should().Contain(new Dictionary <string, object>() { { "status", $"{state1.UriName},{state2.UriName}" } }); }
public void Test_TraktSearchFilterBuilder_EmptyFilter() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.Build(); filter.Query.Should().BeNull(); filter.Year.Should().BeNull(); filter.Years.Should().BeNull(); 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.Networks.Should().BeNull(); filter.States.Should().BeNull(); filter.HasValues.Should().BeFalse(); filter.ToString().Should().NotBeNull().And.BeEmpty(); filter.GetParameters().Should().NotBeNull().And.BeEmpty(); }
public void Test_TraktSearchFilterBuilder_ToString() { TraktShowStatus state1 = TraktShowStatus.ReturningSeries; TraktShowStatus state2 = TraktShowStatus.InProduction; ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter .WithQuery("query") .WithYears(2016, 2018) .WithGenres("action", "drama") .WithLanguages("de", "en") .WithCountries("gb", "us") .WithRuntimes(30, 180) .WithRatings(60, 90) .WithCertifications("pg-13", "nr") .WithNetworks("abc", "fox") .WithStates(state1, state2) .Build(); filter.ToString().Should().Be("query=query&years=2016-2018&genres=action,drama&languages=de,en" + "&countries=gb,us&runtimes=30-180&ratings=60-90&certifications=pg-13,nr" + $"&networks=abc,fox&status={state1.UriName},{state2.UriName}"); }
public void Test_TraktSearchFilterBuilder_HasValues() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.Build(); filter.HasValues.Should().BeFalse(); filter = TraktFilterDirectory.SearchFilter.WithQuery("query").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithYear(2018).Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithYears(2016, 2018).Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithGenres("action", "drama").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithLanguages("de", "en").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithCountries("gb", "us").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithRuntimes(30, 180).Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithRatings(60, 90).Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithCertifications("pg-13", "nr").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithNetworks("abc", "fox").Build(); filter.HasValues.Should().BeTrue(); filter = TraktFilterDirectory.SearchFilter.WithStates(TraktShowStatus.ReturningSeries, TraktShowStatus.InProduction).Build(); filter.HasValues.Should().BeTrue(); }
public void Test_TraktSearchFilterBuilder_ToString_With_Query() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithQuery("query").Build(); filter.ToString().Should().Be("query=query"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Genres() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithGenres("action", "drama").Build(); filter.ToString().Should().Be("genres=action,drama"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Networks() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithNetworks("abc", "fox").Build(); filter.ToString().Should().Be("networks=abc,fox"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Certifications() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithCertifications("pg-13", "nr").Build(); filter.ToString().Should().Be("certifications=pg-13,nr"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Ratings() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithRatings(60, 90).Build(); filter.ToString().Should().Be("ratings=60-90"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Runtimes() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithRuntimes(30, 180).Build(); filter.ToString().Should().Be("runtimes=30-180"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Countries() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithCountries("gb", "us").Build(); filter.ToString().Should().Be("countries=gb,us"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Languages() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithLanguages("de", "en").Build(); filter.ToString().Should().Be("languages=de,en"); }
public void Test_TraktSearchFilterBuilder_ToString_With_Years_Reversed() { ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithYears(2018, 2016).Build(); filter.ToString().Should().Be("years=2016-2018"); }
/// <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="ITraktSearchFilter" />.</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">Specifies pagination parameters. <see cref="TraktPagedParameters" />.</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="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, ITraktSearchFilter 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)); }