public void TestValidationOneRuleOneCondition() { var container = GetConfiguredContainer(); IRuleManager ruleManager = container.Resolve <IRuleManager>(); // Rule created to Item 1 RuleDefinition rule = new RuleDefinition(null, null, 1, "My Rule 1"); ruleManager.AddRule(rule); RuleConditionDefinition condition = new RuleConditionDefinition(null, "Division", "=", "BTL", rule.Id); ruleManager.AddCondition(condition); MyDummyDtObject myDummyDtObject = new MyDummyDtObject(); RuleContext ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The division field is null here bool isValid = ruleManager.IsRuleValid(1, ruleContext); //The rule should NOT be valid here. Assert.IsFalse(isValid); //The division is set to "BTL" here myDummyDtObject.Division = "BTL"; ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The rule should be valid now isValid = ruleManager.IsRuleValid(1, ruleContext); Assert.IsTrue(isValid); }
public void TestValidationManyRulesOneCondition() { var container = GetConfiguredContainer(); IRuleManager ruleManager = container.Resolve <IRuleManager>(); // Rule created to Item 1 RuleDefinition rule_1 = new RuleDefinition(null, null, 1, "My Rule 1"); ruleManager.AddRule(rule_1); RuleConditionDefinition condition_1 = new RuleConditionDefinition(null, "Division", "=", "BTL", rule_1.Id); ruleManager.AddCondition(condition_1); RuleDefinition rule_2 = new RuleDefinition(null, null, 1, "My Rule 2"); ruleManager.AddRule(rule_2); RuleConditionDefinition condition_2 = new RuleConditionDefinition(null, "Entity", "=", "ENT_1", rule_2.Id); ruleManager.AddCondition(condition_2); MyDummyDtObject myDummyDtObject = new MyDummyDtObject(); RuleContext ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The division and entity field are null here bool isValid = ruleManager.IsRuleValid(1, ruleContext); //The rule should NOT be valid here. Assert.IsFalse(isValid); //The division is set to "BTL" here myDummyDtObject.Division = "BTL"; ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The rule should be valid as it match 1 rule isValid = ruleManager.IsRuleValid(1, ruleContext); Assert.IsTrue(isValid); //The entity is set to "ENT_1" here myDummyDtObject.Entity = "ENT_1"; ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The rule should be valid now (2 rules valid) isValid = ruleManager.IsRuleValid(1, ruleContext); Assert.IsTrue(isValid); //The division is set to "UNKNOWN_ENT" here myDummyDtObject.Entity = "UNKNOWN_ENT"; myDummyDtObject.Division = "DIV"; ruleContext = new RuleContext(myDummyDtObject, RuleConstants.EmptyRuleConstants); //The rule should NOT be valid anymore isValid = ruleManager.IsRuleValid(1, ruleContext); Assert.IsFalse(isValid); }
public void UpdateCondition(RuleConditionDefinition ruleConditionDefinition) { Debug.Assert(ruleConditionDefinition.Id != null); BrokerManager.GetBroker <RuleConditionDefinition>().Save(ruleConditionDefinition); }
public void RemoveCondition(RuleConditionDefinition ruleConditionDefinition) { Debug.Assert(ruleConditionDefinition.Id != null); BrokerManager.GetBroker <RuleConditionDefinition>().Delete(ruleConditionDefinition); }