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)); }
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); }
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); }
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); }