public void ChangeValidation() { var factory = new RuleFactory <Entity>(); RangeValidation <int> rangeValidation = ValidationFactory.Range(0, 10, true, true); var rule = factory.CreateValidationRule(en => en.Number, rangeValidation) .Start(); var e = new Entity { Number = -3 }; var r = (PredefinedValidationRule)e.Extensions.AddRuleFromPrototype(rule); e.Extensions.BrokenRules.Count.ShouldEqual(1); var e2 = new Entity { Number = -3 }; e2.Extensions.AddRuleFromPrototype(rule); e2.Extensions.BrokenRules.Count.ShouldEqual(1); ((RangeValidation <int>)r.ValidationStrategy).Low = -10; e.Extensions.Validate(); e2.Extensions.Validate(); e.Extensions.BrokenRules.Count.ShouldEqual(0); e2.Extensions.BrokenRules.Count.ShouldEqual(1); }
public void AddRuleFromFactory() { var factory = new RuleFactory <Entity>(); var rule = factory.CreateValidationRule(en => en.Number < 5); var e = new Entity(); e.Extensions.AddRule(rule); }
public void RulesFromPrototype() { var factory = new RuleFactory <Entity>(); var rule = factory.CreateValidationRule(en => en.Number > 5); var e = new Entity(); TestTime.Measure(() => e.Extensions.AddRuleFromPrototype(rule)); }
public void RuleFactory() { var e = new Entity(); var f = new RuleFactory <Entity>(); var rule = f.CreateValidationRule(en => en.Number < 4) .WithName("NumberLessThan").Start(); e.Extensions.Rules.Add(rule); rule.State.ShouldEqual(RuleState.Enabled); }
public void AddFuncRuleFromPrototype() { var factory = new RuleFactory <Entity>(); var rule = factory.CreateValidationRule(en => en.Number > 5).Start(); var e = new Entity(); e.Extensions.AddRuleFromPrototype(rule); e.Extensions.BrokenRules.Count.ShouldEqual(1); e.Number = 8; e.Extensions.BrokenRules.Count.ShouldEqual(0); }
public void CreateRules() { var factory = new RuleFactory <Entity>(); factory.CreateActionRule(en => en.Name.ToString()); factory.CreateActionRuleWithoutDependency(en => en.Name.ToString()) .WithDependencies(en => en.Number); factory.CreateValidationRule(en => en.Number < 10); factory.CreateValidationRuleWithoutDependency(en => en.Number < 10) .WithDependencies(en => en.Number); factory.CreateBusinessRule(en => en.Number2 + en.Number3, en => en.Number); }
public static IEnumerable<Rule> RulePrototype(Type type) { var f = new RuleFactory<RuleInitializerEntity>(); yield return f.CreateValidationRule(o => o.Value == 0); }