Beispiel #1
0
        public void ItShouldParseExpression()
        {
            const string text = "( {0} + {1} ) * ( {2} * 1 )";

            var rule = new RuleTree <int, int>(text);

            var expression = rule.GetExpression();

            Assert.AreEqual("0", expression.Parameters[0].ToString());
            Assert.AreEqual("1", expression.Parameters[1].ToString());
            Assert.AreEqual(ExpressionType.Multiply, expression.Body.NodeType);
        }
Beispiel #2
0
        public void ItShouldGetExpresionWhenvalidate()
        {
            var i = new Mock <IRule <int, int> >();
            var j = new Mock <IRule <int, int> >();

            i.Setup(x => x.GetResult()).Returns(SetDictionary("1", 1));
            j.Setup(x => x.GetResult()).Returns(SetDictionary("2", 2));
            var operation = new Mock <IOperation>();

            operation.Setup(x => x.GetOperator()).Returns(ExpressionType.Add);

            var rule = new RuleTree <int, int>
            {
                I         = i.Object,
                J         = j.Object,
                Operation = operation.Object
            };
            var expression = rule.GetExpression();

            Assert.IsNotNull(expression);
            Assert.AreEqual("0", expression.Parameters[0].ToString());
            Assert.AreEqual("1", expression.Parameters[1].ToString());
            Assert.AreEqual(ExpressionType.Add, expression.Body.NodeType);
        }
Beispiel #3
0
        public void ItShouldNotGetExpressionWhenNotValidate()
        {
            var rule = new RuleTree <int, int>();

            Assert.Throws(typeof(RuleException), () => rule.GetExpression());
        }