public virtual void TestParsesMultiCorrectly() { Evaluator eval = QueryParser.Parse(".foo > ol, ol > li + li"); NUnit.Framework.Assert.IsTrue(eval is CombiningEvaluator.OR); CombiningEvaluator.OR or = (CombiningEvaluator.OR)eval; NUnit.Framework.Assert.AreEqual(2, or.evaluators.Count); CombiningEvaluator.And andLeft = (CombiningEvaluator.And)or.evaluators[0]; CombiningEvaluator.And andRight = (CombiningEvaluator.And)or.evaluators[1]; NUnit.Framework.Assert.AreEqual("ol :ImmediateParent.foo", andLeft.ToString()); NUnit.Framework.Assert.AreEqual(2, andLeft.evaluators.Count); NUnit.Framework.Assert.AreEqual("li :prevli :ImmediateParentol", andRight.ToString()); NUnit.Framework.Assert.AreEqual(2, andLeft.evaluators.Count); }
public void testParsesMultiCorrectly() { Evaluator eval = QueryParser.Parse(".foo > ol, ol > li + li"); Assert.IsTrue(eval is CombiningEvaluator.Or); CombiningEvaluator.Or or = (CombiningEvaluator.Or)eval; Assert.AreEqual(2, or.Evaluators.Count); CombiningEvaluator.And andLeft = (CombiningEvaluator.And)or.Evaluators[0]; CombiningEvaluator.And andRight = (CombiningEvaluator.And)or.Evaluators[1]; Assert.AreEqual("ol :ImmediateParent.foo", andLeft.ToString()); Assert.AreEqual(2, andLeft.Evaluators.Count); Assert.AreEqual("li :prevli :ImmediateParentol", andRight.ToString()); Assert.AreEqual(2, andLeft.Evaluators.Count); }
public virtual void TestOrGetsCorrectPrecedence() { // tests that a selector "a b, c d, e f" evals to (a AND b) OR (c AND d) OR (e AND f)" // top level or, three child ands Evaluator eval = QueryParser.Parse("a b, c d, e f"); NUnit.Framework.Assert.IsTrue(eval is CombiningEvaluator.OR); CombiningEvaluator.OR or = (CombiningEvaluator.OR)eval; NUnit.Framework.Assert.AreEqual(3, or.evaluators.Count); foreach (Evaluator innerEval in or.evaluators) { NUnit.Framework.Assert.IsTrue(innerEval is CombiningEvaluator.And); CombiningEvaluator.And and = (CombiningEvaluator.And)innerEval; NUnit.Framework.Assert.AreEqual(2, and.evaluators.Count); NUnit.Framework.Assert.IsTrue(and.evaluators[0] is Evaluator.Tag); NUnit.Framework.Assert.IsTrue(and.evaluators[1] is StructuralEvaluator.Parent); } }