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_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_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_Genres()
        {
            ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithGenres("action", "drama").Build();

            filter.ToString().Should().Be("genres=action,drama");
        }
        public void Test_TraktSearchFilterBuilder_ToString_With_Years_Reversed()
        {
            ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithYears(2018, 2016).Build();

            filter.ToString().Should().Be("years=2016-2018");
        }
        public void Test_TraktSearchFilterBuilder_ToString_With_Query()
        {
            ITraktSearchFilter filter = TraktFilterDirectory.SearchFilter.WithQuery("query").Build();

            filter.ToString().Should().Be("query=query");
        }