/* * if name starts with s * if name=so * return sonam; * else * if name = sa * return sarah * else * return suk * else * if name starts with p * return peter * else * if name=k * return kapil; * return noname */ private static void RuleStatement() { for (var i = 0; i <= 6; i++) { var name = Console.ReadLine(); var nameInAction = string.Empty; var saRule = new RuleStatement <string>(() => name == "sa", new StopWithFuncRule <string>(() => "sarah"), new StopWithFuncRule <string>(() => "suk") ); var soRule = new RuleStatement <string>(() => name == "so", new StopWithFuncRule <string>(() => "sonam"), saRule ); var kRule = new RuleStatement <string>(() => name == "k", new StopWithFuncRule <string>(() => { nameInAction = "Kapil in action"; return("kapil"); }), new StopWithFuncRule <string>(() => { nameInAction = "No name in action"; return("no name"); }) ); var prule = new RuleStatement <string>(() => name.StartsWith("p"), new StopWithFuncRule <string>(() => "peter"), kRule ); var sRule = new RuleStatement <string>(() => name.StartsWith("s"), soRule, prule); Console.Write($"{sRule.Process()}==={name}"); Console.WriteLine(Environment.NewLine); Console.WriteLine(nameInAction); Console.ReadLine(); } }
public void IsSatisfiedRuleSetNullTest() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var service = new RuleValidationService(vehicle); var rsBracketNo = new List <int> { 0 }; var ruleConnectors = new List <int> { BoolOperator.AND }; var target = new RuleStatement() { RsBracketNo = String.Join(",", rsBracketNo), RuleConnectors = String.Join(",", ruleConnectors) }; const bool expected = false; var actual = target.IsSatisfied(service); Assert.AreEqual(expected, actual); }
public void IsSatisfiedTwoRuleSetsTandTandTTrueTest() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var ruleConnectors = new List <int> { BoolOperator.AND, BoolOperator.AND }; var rsBracketNo = new List <int> { 0, 0, 0 }; var ruleList = new List <Rule> { new Rule { RuleType = Convert.ToInt32(RuleType.UnaryRule), LeftPropertyName = "Plate", ComparisonOperator = LogicOperator.Equal, ExpectedValue = "123-abc" } }; var ruleSet = new RuleSet { tblRules = ruleList, Operation = BoolOperator.AND }; var ruleList1 = new List <Rule> { new Rule { RuleType = RuleType.UnaryRule, LeftPropertyName = "TransSN", ComparisonOperator = LogicOperator.NotEqual, ExpectedValue = "23483678" } }; var ruleSet1 = new RuleSet { tblRules = ruleList1, Operation = BoolOperator.AND }; var ruleSets = new List <RuleSet> { ruleSet, ruleSet1, ruleSet1 }; var service = new RuleValidationService(vehicle); var statement = new RuleStatement() { tblRuleSets = ruleSets, RsBracketNo = String.Join(",", rsBracketNo), RuleConnectors = String.Join(",", ruleConnectors) }; const bool expected = true; var actual = statement.IsSatisfied(service); Assert.AreEqual(expected, actual); }
private static bool IsValidMethodCall(IAsyncMethodInvocation methodInvocation) { var result = new RuleStatement <bool>( () => methodInvocation.InstanceMethodInfo.ReturnType != typeof(void) && methodInvocation.MethodInfo.GetCustomAttributes <ResolveFromCacheAttribute>() != null, new StopWithFuncRule <bool>(() => true), new StopWithFuncRule <bool>(() => false)); var isValid = result.Process(); return(isValid); }
public void IsSatisfied_RuleSet_OneGreaterThan_RuleConnector_Test() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var ruleConnectors = new List <int> { BoolOperator.AND, BoolOperator.AND }; var rsBracketNo = new List <int> { 0 }; var ruleList = new List <Rule> { new Rule { RuleType = RuleType.UnaryRule, LeftPropertyName = "OMBYear", ComparisonOperator = LogicOperator.GreaterThan, ExpectedValue = "2000" }, new Rule { RuleType = RuleType.UnaryRule, LeftPropertyName = "Miles", ComparisonOperator = LogicOperator.GreaterThan, ExpectedValue = "2000" } }; var ruleSet = new RuleSet { tblRules = ruleList, Operation = BoolOperator.AND }; var ruleSets = new List <RuleSet> { ruleSet }; var service = new RuleValidationService(vehicle); var statement = new RuleStatement() { tblRuleSets = ruleSets, RsBracketNo = String.Join(",", rsBracketNo), RuleConnectors = String.Join(",", ruleConnectors) }; const bool expected = false; var actual = statement.IsSatisfied(service); Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }
public void IsSatisfiedRuleSetNotEqualRsBracketNoTest() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var ruleConnectors = new List <int> { BoolOperator.AND }; var rsBracketNo = new List <int>(); var ruleList = new List <Rule> { new Rule { RuleType = RuleType.UnaryRule, LeftPropertyName = "OBMYear", ComparisonOperator = LogicOperator.GreaterThan, ExpectedValue = "2000" }, new Rule { RuleType = Convert.ToInt32(RuleType.UnaryRule), LeftPropertyName = "OBMYear", ComparisonOperator = LogicOperator.GreaterThan, ExpectedValue = "2000" } }; var ruleSet = new RuleSet { tblRules = ruleList, Operation = BoolOperator.AND }; var ruleSets = new List <RuleSet> { ruleSet }; var service = new RuleValidationService(vehicle); var statement = new RuleStatement() { tblRuleSets = ruleSets, RsBracketNo = String.Join(",", rsBracketNo), RuleConnectors = String.Join(",", ruleConnectors) }; const bool expected = false; var actual = statement.IsSatisfied(service); Assert.AreEqual(expected, actual); }
public void IsSatisfiedServiceNullTest() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var target = new RuleStatement(); const bool expected = false; var actual = target.IsSatisfied(new RuleValidationService(vehicle)); Assert.AreEqual(expected, actual); }
public void RuleStatementConstructorTest() { var vehicle = new VehicleModelProxy { Plate = "123-abc", TransSN = "2343678", OMBYear = 3000 }; var service = new RuleValidationService(vehicle); var target = new RuleStatement(); Assert.IsTrue(target != null); }