public void BooleanExpressionTest_RegexEqualsOperator()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(QueryOperator.RegexEquals,
                                                                   new List <PathFilter> {
                new ArrayIndexFilter()
            },
                                                                   JsonDocument.Parse("\"/foo.*d/\"").RootElement);

            var nullElt = JsonDocument.Parse("null").RootElement;

            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[\"food\"]").RootElement));
            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[\"fooood and drink\"]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[\"FOOD\"]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[\"foo\", \"foog\", \"good\"]").RootElement));

            BooleanQueryExpression e2 = new BooleanQueryExpression(QueryOperator.RegexEquals,
                                                                   new List <PathFilter> {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("\"/Foo.*d/i\"").RootElement);

            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[\"food\"]").RootElement));
            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[\"fooood and drink\"]").RootElement));
            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[\"FOOD\"]").RootElement));
            Assert.IsFalse(e2.IsMatch(nullElt, JsonDocument.Parse("[\"foo\", \"foog\", \"good\"]").RootElement));
        }
        public void BooleanExpressionTest()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression
            {
                Operator = QueryOperator.LessThan,
                Value    = new JValue(3),
                Path     = new List <PathFilter>
                {
                    new ArrayIndexFilter()
                }
            };

            Assert.IsTrue(e1.IsMatch(null, new JArray(1, 2, 3, 4, 5)));
            Assert.IsTrue(e1.IsMatch(null, new JArray(2, 3, 4, 5)));
            Assert.IsFalse(e1.IsMatch(null, new JArray(3, 4, 5)));
            Assert.IsFalse(e1.IsMatch(null, new JArray(4, 5)));

            BooleanQueryExpression e2 = new BooleanQueryExpression
            {
                Operator = QueryOperator.LessThanOrEquals,
                Value    = new JValue(3),
                Path     = new List <PathFilter>
                {
                    new ArrayIndexFilter()
                }
            };

            Assert.IsTrue(e2.IsMatch(null, new JArray(1, 2, 3, 4, 5)));
            Assert.IsTrue(e2.IsMatch(null, new JArray(2, 3, 4, 5)));
            Assert.IsTrue(e2.IsMatch(null, new JArray(3, 4, 5)));
            Assert.IsFalse(e2.IsMatch(null, new JArray(4, 5)));
        }
        public void BooleanExpressionTest()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(QueryOperator.LessThan,
                                                                   new List <PathFilter> {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("3").RootElement);

            var nullElt = JsonDocument.Parse("null").RootElement;

            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[1, 2, 3, 4, 5]").RootElement));
            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[2, 3, 4, 5]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[3, 4, 5]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[4, 5]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[\"11\", 5]").RootElement));

            BooleanQueryExpression e2 = new BooleanQueryExpression(QueryOperator.LessThanOrEquals,
                                                                   new List <PathFilter> {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("3").RootElement);

            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[1, 2, 3, 4, 5]").RootElement));
            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[2, 3, 4, 5]").RootElement));
            Assert.IsTrue(e2.IsMatch(nullElt, JsonDocument.Parse("[3, 4, 5]").RootElement));
            Assert.IsFalse(e2.IsMatch(nullElt, JsonDocument.Parse("[4, 5]").RootElement));
            Assert.IsFalse(e2.IsMatch(nullElt, JsonDocument.Parse("[\"11\", 5]").RootElement));
        }
示例#4
0
        public void BooleanExpressionTest_RegexEqualsOperator()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(
                QueryOperator.RegexEquals,
                new List <PathFilter> {
                new ArrayIndexFilter()
            },
                new JValue("/foo.*d/")
                );

            Assert.IsTrue(e1.IsMatch(null, new JArray("food")));
            Assert.IsTrue(e1.IsMatch(null, new JArray("fooood and drink")));
            Assert.IsFalse(e1.IsMatch(null, new JArray("FOOD")));
            Assert.IsFalse(e1.IsMatch(null, new JArray("foo", "foog", "good")));

            BooleanQueryExpression e2 = new BooleanQueryExpression(
                QueryOperator.RegexEquals,
                new List <PathFilter> {
                new ArrayIndexFilter()
            },
                new JValue("/Foo.*d/i")
                );

            Assert.IsTrue(e2.IsMatch(null, new JArray("food")));
            Assert.IsTrue(e2.IsMatch(null, new JArray("fooood and drink")));
            Assert.IsTrue(e2.IsMatch(null, new JArray("FOOD")));
            Assert.IsFalse(e2.IsMatch(null, new JArray("foo", "foog", "good")));
        }
示例#5
0
        public void BooleanExpressionTest_RegexEqualsOperator_CornerCase()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression
            {
                Operator = QueryOperator.RegexEquals,
                Right    = new JValue("/// comment/"),
                Left     = new List <PathFilter>
                {
                    new ArrayIndexFilter()
                }
            };

            Assert.IsTrue(e1.IsMatch(null, new JArray("// comment")));
            Assert.IsFalse(e1.IsMatch(null, new JArray("//comment", "/ comment")));

            BooleanQueryExpression e2 = new BooleanQueryExpression
            {
                Operator = QueryOperator.RegexEquals,
                Right    = new JValue("/<tag>.*</tag>/i"),
                Left     = new List <PathFilter>
                {
                    new ArrayIndexFilter()
                }
            };

            Assert.IsTrue(e2.IsMatch(null, new JArray("<Tag>Test</Tag>", "")));
            Assert.IsFalse(e2.IsMatch(null, new JArray("<tag>Test<tag>")));
        }
示例#6
0
        public void BooleanExpressionTest_GreaterThanOperator()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(QueryOperator.GreaterThan, new List <PathFilter> {
                new ArrayIndexFilter()
            }, new JValue(3));

            Assert.IsTrue(e1.IsMatch(null, new JArray("2", "26")));
            Assert.IsTrue(e1.IsMatch(null, new JArray(2, 26)));
            Assert.IsFalse(e1.IsMatch(null, new JArray(2, 3)));
            Assert.IsFalse(e1.IsMatch(null, new JArray("2", "3")));
        }
        public void BooleanExpressionTest_GreaterThanOperator()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(QueryOperator.GreaterThan,
                                                                   new List <PathFilter> {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("3").RootElement);

            var nullElt = JsonDocument.Parse("null").RootElement;

            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[\"2\", \"26\"]").RootElement));
            Assert.IsTrue(e1.IsMatch(nullElt, JsonDocument.Parse("[2, 26]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[2, 3]").RootElement));
            Assert.IsFalse(e1.IsMatch(nullElt, JsonDocument.Parse("[\"2\", \"3\"]").RootElement));
        }
示例#8
0
        public void BooleanExpressionTest_RegexEqualsOperator_CornerCase()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression(QueryOperator.RegexEquals, new List <PathFilter>
            {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("\"/// comment/\"").RootElement);

            var oNull = JsonDocument.Parse("null").RootElement;

            Assert.True(e1.IsMatch(oNull, JsonDocument.Parse("[\"// comment\"]").RootElement));
            Assert.False(e1.IsMatch(oNull, JsonDocument.Parse("[\"//comment\",\"/ comment\"]").RootElement));

            BooleanQueryExpression e2 = new BooleanQueryExpression(QueryOperator.RegexEquals, new List <PathFilter>
            {
                new ArrayIndexFilter()
            }, JsonDocument.Parse("\"/<tag>.*</tag>/i\"").RootElement);

            Assert.True(e2.IsMatch(oNull, JsonDocument.Parse("[\"<Tag>Test</Tag>\",\"\"]").RootElement));
            Assert.False(e2.IsMatch(oNull, JsonDocument.Parse("[\"<tag>Test<tag>\"]").RootElement));
        }
示例#9
0
        public void BooleanExpressionTest_GreaterThanOrEqualsOperator()
        {
            BooleanQueryExpression e1 = new BooleanQueryExpression
            {
                Operator = QueryOperator.GreaterThanOrEquals,
                Right    = new JValue(3),
                Left     = new List <PathFilter>
                {
                    new ArrayIndexFilter()
                }
            };

            Assert.IsTrue(e1.IsMatch(null, new JArray("2", "26")));
            Assert.IsTrue(e1.IsMatch(null, new JArray(2, 26)));
            Assert.IsTrue(e1.IsMatch(null, new JArray(2, 3)));
            Assert.IsTrue(e1.IsMatch(null, new JArray("2", "3")));
            Assert.IsFalse(e1.IsMatch(null, new JArray(2, 1)));
            Assert.IsFalse(e1.IsMatch(null, new JArray("2", "1")));
        }