11using System . IO ;
2- using System . Linq ;
3- using Pidgin ;
2+ using SimpleStateMachine . StructuralSearch . Extensions ;
43using SimpleStateMachine . StructuralSearch . StructuralSearch ;
4+ using SimpleStateMachine . StructuralSearch . Tests . Attributes ;
55using Xunit ;
66
77namespace SimpleStateMachine . StructuralSearch . Tests ;
88
9- public static class FindRuleParserTests
9+ public class FindRuleParserTests
1010{
1111 [ Theory ]
12- [ InlineData ( "$var$ equals $var$" ) ]
13- [ InlineData ( "$var$ equals \" \\ $\" " ) ]
14- [ InlineData ( "Not $var$ equals $var$.Lenght" ) ]
15- [ InlineData ( "Not $var$ equals $var$.offset.Start" ) ]
16- [ InlineData ( "$var$ equals $var$.Lenght and Not $var$ StartsWith \" 123\" " ) ]
17- [ InlineData ( "Not $var$ equals $var$.Lenght and $var$ StartsWith \" 123\" " ) ]
18- [ InlineData ( "$var$ equals $var$.Lenght and Not $var$ StartsWith \" \\ \" Test\" " ) ]
19- [ InlineData ( "$var$ Contains $var$.Lenght" ) ]
20- [ InlineData ( "not $var$ Contains \" 123\" " ) ]
21- [ InlineData ( "$var1$.Lenght Contains $var2$.Lenght" ) ]
22- [ InlineData ( "$var$ Contains \" 123\" " ) ]
23- [ InlineData ( "$var$ StartsWith $var$.Lenght" ) ]
24- [ InlineData ( "$var$.Lenght Equals $var$.Lenght" ) ]
25- [ InlineData ( "$var$ StartsWith \" 123\" " ) ]
26- [ InlineData ( "$var$ EndsWith $var$.Lenght" ) ]
27- [ InlineData ( "$var$ EndsWith \" 123\" " ) ]
28- [ InlineData ( "$var$ Is Int" ) ]
29- [ InlineData ( "$var$ Is DateTime" ) ]
30- [ InlineData ( "$var$ equals $var1$ or $var2$ equals $var1$" ) ]
31- [ InlineData ( "$var$ match \" [a-b]+\" " ) ]
32- public static void FindRuleExprParsingShouldBeSuccess ( string ruleStr )
12+ [ InlineData ( "$sign$ In (\" is\" , \" ==\" , \" !=\" , \" is not\" )" ) ]
13+ public static void FindRuleParsingShouldBeSuccess ( string ruleStr )
3314 {
34- var rule = FindRuleParser . Expr . ParseOrThrow ( ruleStr ) ;
35- var _ruleStr = rule . ToString ( ) ? . ToLower ( ) ;
36- Assert . NotNull ( rule ) ;
37- Assert . Equal ( _ruleStr , ruleStr . ToLower ( ) ) ;
15+ LogicalExpressionParser . LogicalExpression . ParseToEnd ( ruleStr ) ;
3816 }
39-
17+
4018 [ Theory ]
41- [ InlineData ( "$var$ In \" Is\" , \" ==\" , \" !=\" , \" is not\" " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
42- [ InlineData ( "$var$ In (\" Is\" , \" ==\" , \" !=\" , \" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
43- [ InlineData ( "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
44- [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
45- [ InlineData ( "$var$ In(\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
46- [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
47- [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
48- [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
49- [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
50- [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
51- [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
52- [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
53- [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
54- [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
55- [ InlineData ( "Not ($var$ equals $var$.Lenght and $var$ StartsWith \" 123\" )" , "Not $var$ equals $var$.Lenght and $var$ StartsWith \" 123\" " ) ]
56- [ InlineData ( "Not ($var$ equals $var$.Lenght)" , "Not $var$ equals $var$.Lenght" ) ]
57- public static void FindRuleExprParsingShouldBeEqualsCustomResult ( string ruleStr , string customResult )
58- {
59- var rule = FindRuleParser . Expr . ParseOrThrow ( ruleStr ) ;
60- var ruleAsStr = rule . ToString ( ) ? . ToLower ( ) ;
61- Assert . NotNull ( rule ) ;
62- Assert . Equal ( ruleAsStr , customResult . ToLower ( ) ) ;
63- }
64-
65- [ Theory ]
66- [ InlineData ( "FindRule/NullUnionOperator.txt" , "$sign$ In \" is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
67- [ InlineData ( "FindRule/AssignmentNullUnionOperator.txt" , "$sign$ In \" is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
68- public static void FindRuleParsingFromFileShouldBeSuccess ( string filePath , params string [ ] customResult )
19+ [ FilesData ( "FindRule" ) ]
20+ public static void FindRuleFileParsingShouldBeSuccess ( string filePath )
6921 {
7022 var ruleStr = File . ReadAllText ( filePath ) ;
71- var rules = ruleStr . Split ( Constant . LineFeed )
72- . Select ( StructuralSearch . StructuralSearch . ParseFindRule ) ;
73- var rulesAsStr = rules . Select ( x => x . ToString ( ) ) . ToArray ( ) ;
74-
75- Assert . True ( customResult . SequenceEqual ( rulesAsStr ) ) ;
23+ LogicalExpressionParser . LogicalExpression . ParseToEnd ( ruleStr ) ;
7624 }
7725}
0 commit comments