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}" }
            });
        }
            private void SetupPathParamters()
            {
                var strResultTypes   = _resultTypes.UriName;
                var strExtendedInfo  = _extendedInfo.ToString();
                var filterParameters = _filter.GetParameters();
                var strSearchFields  = _searchFields.UriName;
                var strPage          = _page.ToString();
                var strLimit         = _limit.ToString();

                _data.Add(new object[] { _request1.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]  = strResultTypes,
                                             ["query"] = _query
                                         } });

                _data.Add(new object[] { _request2.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]     = strResultTypes,
                                             ["query"]    = _query,
                                             ["extended"] = strExtendedInfo
                                         } });

                _data.Add(new object[] { _request3.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]  = strResultTypes,
                                             ["query"] = _query
                                         } });

                _data.Add(new object[] { _request4.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields
                                         } });

                _data.Add(new object[] { _request5.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]  = strResultTypes,
                                             ["query"] = _query,
                                             ["page"]  = strPage
                                         } });

                _data.Add(new object[] { _request6.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]  = strResultTypes,
                                             ["query"] = _query,
                                             ["limit"] = strLimit
                                         } });

                _data.Add(new object[] { _request7.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]     = strResultTypes,
                                             ["query"]    = _query,
                                             ["extended"] = strExtendedInfo
                                         } });

                _data.Add(new object[] { _request8.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]     = strResultTypes,
                                             ["query"]    = _query,
                                             ["extended"] = strExtendedInfo,
                                             ["fields"]   = strSearchFields
                                         } });

                _data.Add(new object[] { _request9.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]     = strResultTypes,
                                             ["query"]    = _query,
                                             ["extended"] = strExtendedInfo,
                                             ["fields"]   = strSearchFields,
                                             ["page"]     = strPage
                                         } });

                _data.Add(new object[] { _request10.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]     = strResultTypes,
                                             ["query"]    = _query,
                                             ["extended"] = strExtendedInfo,
                                             ["fields"]   = strSearchFields,
                                             ["page"]     = strPage,
                                             ["limit"]    = strLimit
                                         } });

                _data.Add(new object[] { _request11.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields
                                         } });

                _data.Add(new object[] { _request12.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields,
                                             ["page"]   = strPage
                                         } });

                _data.Add(new object[] { _request13.GetUriPathParameters(), new Dictionary <string, object>(filterParameters)
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields,
                                             ["page"]   = strPage,
                                             ["limit"]  = strLimit
                                         } });

                _data.Add(new object[] { _request14.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields,
                                             ["page"]   = strPage
                                         } });

                _data.Add(new object[] { _request15.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]   = strResultTypes,
                                             ["query"]  = _query,
                                             ["fields"] = strSearchFields,
                                             ["page"]   = strPage,
                                             ["limit"]  = strLimit
                                         } });

                _data.Add(new object[] { _request16.GetUriPathParameters(), new Dictionary <string, object>
                                         {
                                             ["type"]  = strResultTypes,
                                             ["query"] = _query,
                                             ["page"]  = strPage,
                                             ["limit"] = strLimit
                                         } });
            }