public void TestEvaluate()
        {
            SupportExprNode childOne = new SupportExprNode("d");
            SupportExprNode childTwo = new SupportExprNode("c");

            _opNode.AddChildNode(childOne);
            _opNode.AddChildNode(childTwo);
            _opNode.Validate(ExprValidationContextFactory.MakeEmpty());       // Type initialization

            var eparams = new EvaluateParams(null, false, null);

            Assert.AreEqual(true, _opNode.Evaluate(eparams));

            childOne.Value = "c";
            Assert.AreEqual(true, _opNode.Evaluate(eparams));

            childOne.Value = "b";
            Assert.AreEqual(false, _opNode.Evaluate(eparams));

            _opNode = MakeNode(null, typeof(int), 2, typeof(int));
            Assert.AreEqual(null, _opNode.Evaluate(eparams));
            _opNode = MakeNode(1, typeof(int), null, typeof(int));
            Assert.AreEqual(null, _opNode.Evaluate(eparams));
            _opNode = MakeNode(null, typeof(int), null, typeof(int));
            Assert.AreEqual(null, _opNode.Evaluate(eparams));
        }
Exemplo n.º 2
0
        private static void AnalyzeRelationalOpNode(ExprRelationalOpNode relNode, QueryGraph queryGraph)
        {
            if (((relNode.ChildNodes[0] is ExprIdentNode)) &&
                ((relNode.ChildNodes[1] is ExprIdentNode)))
            {
                var identNodeLeft  = (ExprIdentNode)relNode.ChildNodes[0];
                var identNodeRight = (ExprIdentNode)relNode.ChildNodes[1];

                if (identNodeLeft.StreamId != identNodeRight.StreamId)
                {
                    queryGraph.AddRelationalOpStrict(
                        identNodeLeft.StreamId, identNodeLeft,
                        identNodeRight.StreamId, identNodeRight,
                        relNode.RelationalOpEnum);
                }
                return;
            }

            var              indexedStream   = -1;
            ExprIdentNode    indexedPropExpr = null;
            ExprNode         exprNodeNoIdent = null;
            RelationalOpEnum relop           = relNode.RelationalOpEnum;

            if (relNode.ChildNodes[0] is ExprIdentNode)
            {
                indexedPropExpr = (ExprIdentNode)relNode.ChildNodes[0];
                indexedStream   = indexedPropExpr.StreamId;
                exprNodeNoIdent = relNode.ChildNodes[1];
            }
            else if (relNode.ChildNodes[1] is ExprIdentNode)
            {
                indexedPropExpr = (ExprIdentNode)relNode.ChildNodes[1];
                indexedStream   = indexedPropExpr.StreamId;
                exprNodeNoIdent = relNode.ChildNodes[0];
                relop           = relop.Reversed();
            }
            if (indexedStream == -1)
            {
                return;     // require property of right/left side of equals
            }

            var eligibility = EligibilityUtil.VerifyInputStream(exprNodeNoIdent, indexedStream);

            if (!eligibility.Eligibility.IsEligible())
            {
                return;
            }

            queryGraph.AddRelationalOp(indexedStream, indexedPropExpr, eligibility.StreamNum, exprNodeNoIdent, relop);
        }
Exemplo n.º 3
0
        public void TestEvaluate()
        {
            var childOne = new SupportExprNode("d");
            var childTwo = new SupportExprNode("c");

            opNode.AddChildNode(childOne);
            opNode.AddChildNode(childTwo);
            opNode.Validate(SupportExprValidationContextFactory.MakeEmpty(container)); // Type initialization

            Assert.AreEqual(true, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));

            childOne.Value = "c";
            Assert.AreEqual(true, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));

            childOne.Value = "b";
            Assert.AreEqual(false, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));

            opNode = MakeNode(null, typeof(int?), 2, typeof(int?));
            Assert.AreEqual(null, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));
            opNode = MakeNode(1, typeof(int?), null, typeof(int?));
            Assert.AreEqual(null, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));
            opNode = MakeNode(null, typeof(int?), null, typeof(int?));
            Assert.AreEqual(null, opNode.Forge.ExprEvaluator.Evaluate(null, false, null));
        }
 public void SetUp()
 {
     _opNode = new ExprRelationalOpNodeImpl(RelationalOpEnum.GE);
 }
Exemplo n.º 5
0
 public void SetUp()
 {
     _container = SupportContainer.Reset();
     _opNode    = new ExprRelationalOpNodeImpl(RelationalOpEnum.GE);
 }