Esempio n. 1
0
        public void ParsePredicateTest()
        {
            //Create parser
            PredicateParser predicateParser = new PredicateParser(Init("condition1 && condition2 || condition3"));
            Predicate       parsedPredicate = predicateParser.ParsePredicate();

            //Check Predicates
            Assert.AreEqual(typeof(AndPredicate), parsedPredicate.GetType());

            //Check OrPredicate
            AndPredicate parsedAndPredicate = (AndPredicate)parsedPredicate;

            Assert.AreEqual(typeof(ExpressionPredicate), parsedAndPredicate.GetLeftPredicate().GetType());
            Assert.AreEqual(typeof(OrPredicate), parsedAndPredicate.GetRightPredicate().GetType());

            //Check nested OrPredicate
            OrPredicate parsedNestedOrPredicate = (OrPredicate)parsedAndPredicate.GetRightPredicate();

            Assert.AreEqual(typeof(ExpressionPredicate), parsedNestedOrPredicate.GetLeftPredicate().GetType());
            Assert.AreEqual(typeof(ExpressionPredicate), parsedNestedOrPredicate.GetRightPredicate().GetType());
        }
Esempio n. 2
0
        public void ParseNotPredicateTest()
        {
            //Create parser
            PredicateParser predicateParser = new PredicateParser(Init("! condition1 && test.list?"));
            Predicate       parsedPredicate = predicateParser.ParsePredicate();

            //Check Predicates
            Assert.AreEqual(typeof(NotPredicate), parsedPredicate.GetType());

            //Check AndPredicate
            Predicate parsedInnerPredicate = ((NotPredicate)parsedPredicate).GetPredicate();

            Assert.AreEqual(typeof(AndPredicate), parsedInnerPredicate.GetType());
            AndPredicate parsedInnerAndPredicate = (AndPredicate)parsedInnerPredicate;

            Assert.AreEqual(typeof(ExpressionPredicate), parsedInnerAndPredicate.GetLeftPredicate().GetType());
            Assert.AreEqual(typeof(IsPredicate), parsedInnerAndPredicate.GetRightPredicate().GetType());
        }