예제 #1
0
        public void SingleTest(FilterPredicate pred, string predStr)
        {
            var titleProp = "title";
            var titleVal  = "test title";
            var builder   = new AgilityContentFilterBuilder()
                            .AddFilter(titleProp, titleVal, pred);

            var filterStr = builder.Build();

            var expected = WebUtility.UrlEncode($"{titleProp}[{predStr}]{titleVal}");

            Assert.Equal(expected, filterStr);
        }
        public void FilteredBuilderTest()
        {
            var titleProp = "title";
            var titleVal  = "test title";
            var filter    = new AgilityContentFilterBuilder()
                            .AddFilter(titleProp, titleVal);

            var builder = GetDefaultConfiguredBuilder()
                          .SetFilter(filter);

            var req = builder.Build();

            Assert.Equal(HttpMethod.Get, req.Method);
            Assert.Equal(_apiKey, req.Headers.GetValues("APIKey").FirstOrDefault());
            Assert.Equal(_guid, req.Headers.GetValues("guid").FirstOrDefault());
            Assert.Equal("https://ade6cf3c-api.agilitycms.cloud/en-us/list/posts?skip=0&take=10&contentLinkDepth=1&filter=" + filter.Build(), req.RequestUri.AbsoluteUri);
        }
예제 #3
0
        public void MultiOrTest(FilterPredicate pred, string predStr)
        {
            var titleProp = "title";
            var titleVal  = "test title";

            var nameProp = "name";
            var nameVal  = "Agility";

            var builder = new AgilityContentFilterBuilder()
                          .AddFilter(titleProp, titleVal, pred, FilterExpression.Or)
                          .AddFilter(nameProp, nameVal, pred, FilterExpression.Or);

            var filterStr = builder.Build();

            var expected = WebUtility.UrlEncode($"{titleProp}[{predStr}]{titleVal} OR {nameProp}[{predStr}]{nameVal}");

            Assert.Equal(expected, filterStr);
        }