public void TestTraktSearchTextQueryRequestUriParamsWithoutResultTypes()
        {
            var request = new TraktSearchTextQueryRequest(null)
            {
                ResultTypes = null
            };

            Action act = () => request.GetUriPathParameters();

            act.ShouldThrow <ArgumentNullException>();
        }
        public void TestTraktSearchTextQueryRequestUriParamsWithoutQuery()
        {
            var request = new TraktSearchTextQueryRequest(null)
            {
                ResultTypes = TraktSearchResultType.Movie,
                Query       = null
            };

            Action act = () => request.GetUriPathParameters();

            act.ShouldThrow <ArgumentException>();

            request = new TraktSearchTextQueryRequest(null)
            {
                ResultTypes = TraktSearchResultType.Movie,
                Query       = string.Empty
            };

            act = () => request.GetUriPathParameters();
            act.ShouldThrow <ArgumentException>();
        }
        public void TestTraktSearchTextQueryRequestUriParamsWithSearchFields()
        {
            var resultTypes = TraktSearchResultType.Movie | TraktSearchResultType.Show;
            var query       = "the big bang theory";
            var fields      = TraktSearchField.Name | TraktSearchField.Overview;

            var request = new TraktSearchTextQueryRequest(null)
            {
                ResultTypes  = resultTypes,
                Query        = query,
                SearchFields = fields
            };

            var uriParams = request.GetUriPathParameters();

            uriParams.Should().NotBeNull().And.NotBeEmpty().And.HaveCount(3);
            uriParams.Should().Contain(new Dictionary <string, object>
            {
                ["type"]   = resultTypes.UriName,
                ["query"]  = query,
                ["fields"] = fields.UriName
            });
        }
        public void TestTraktSearchTextQueryRequestHasValidUriTemplate()
        {
            var request = new TraktSearchTextQueryRequest(null);

            request.UriTemplate.Should().Be("search/{type}{?query,fields,years,genres,languages,countries,runtimes,ratings,extended,page,limit}");
        }
        public void TestTraktSearchTextQueryRequestHasAuthorizationNotRequired()
        {
            var request = new TraktSearchTextQueryRequest(null);

            request.AuthorizationRequirement.Should().Be(TraktAuthorizationRequirement.NotRequired);
        }