Ejemplo n.º 1
0
        public void Can_Evaluate_Expression_As_ConditionalRule()
        {
            var statement = "return (this.Price > 20 or this.Price < 15)";
            var order     = new Order {
                Price = 10, Message = "Soemthing"
            };

            EvaluatorAccessPoint.DslConditionEvaluator = evaluator;
            var condition = new DslCondition {
                DslStatement = statement
            };
            var rule = new ConditionalRule(condition);

            Assert.IsTrue(rule.Evaluate(order));
        }
Ejemplo n.º 2
0
        public void Can_Evaluate_Expression_As_ActionActivityRule()
        {
            var statement = "return (this.Price > 20 or this.Price < 15)";
            var order     = new Order {
                Price = 10, Message = "Soemthing"
            };

            EvaluatorAccessPoint.DslConditionEvaluator = evaluator;
            var condition = new DslCondition {
                DslStatement = statement
            };
            var rule = new ActivityRule(condition, new ActionActivity <Order>(t =>
            {
                t.Message = "amp";
            }));

            Assert.IsTrue(rule.Evaluate(order));
            Assert.AreEqual("amp", order.Message);
        }
Ejemplo n.º 3
0
        public void Can_Evaluate_Expression_With_DslActivity()
        {
            var statement = "return (this.Price > 20 or this.Price < 15)";
            var order     = new Order {
                Price = 10, Message = "Something"
            };

            EvaluatorAccessPoint.DslConditionEvaluator = evaluator;
            var condition = new DslCondition {
                DslStatement = statement
            };
            var rule = new ActivityRule(condition, new DslActivity
            {
                DslStatement = @"
    this.Message = ""dsl"";
    return true;"
            });

            Assert.IsTrue(rule.Evaluate(order));
            Assert.AreEqual("dsl", order.Message);
        }
Ejemplo n.º 4
0
        public void TestMethod1()
        {
            var order = new Order()
            {
                TotalPrice = 200, Discount = 0
            };

            EvaluatorAccessPoint.DslConditionEvaluator = new RubyEvaluator.RubyEvaluator();

            var businessRule   = "(this.TotalPrice > 100)";
            var businessAction = @"this.Discount = 10";
            var condition      = new DslCondition {
                DslStatement = businessRule
            };
            var rule = new ActivityRule(condition, new DslActivity
            {
                DslStatement = businessAction
            });
            bool res = rule.Evaluate(order);

            Assert.AreEqual(res, true);
        }