Skip to content

Commit c151d40

Browse files
committed
Tests
1 parent 53e4c06 commit c151d40

File tree

8 files changed

+273
-251
lines changed

8 files changed

+273
-251
lines changed

src/SimpleStateMachine.StructuralSearch.Tests/FindRuleParserTests.cs

Lines changed: 0 additions & 77 deletions
This file was deleted.
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using Pidgin;
5+
using SimpleStateMachine.StructuralSearch.Operator.Logical.Type;
6+
using SimpleStateMachine.StructuralSearch.StructuralSearch;
7+
using Xunit;
8+
9+
namespace SimpleStateMachine.StructuralSearch.Tests;
10+
11+
public static class LogicalExpressionParserTests
12+
{
13+
[Theory]
14+
[InlineData("Equals $var$")]
15+
[InlineData("Contains $var$")]
16+
[InlineData("StartsWith $var$")]
17+
[InlineData("EndsWith $var$")]
18+
public static void StringCompareOperationParsingShouldBeSuccess(string input)
19+
{
20+
LogicalExpressionParser.StringCompareOperation.Before(CommonParser.Eof).ParseOrThrow(input);
21+
}
22+
23+
public static IEnumerable<object[]> GetParameterTypeNames()
24+
=> Enum.GetNames<ParameterType>().Select(x => new object[] { $"Is {x}" });
25+
26+
[Theory]
27+
[MemberData(nameof(GetParameterTypeNames))]
28+
public static void IsOperationParsingShouldBeSuccess(string input)
29+
{
30+
LogicalExpressionParser.IsOperation.Before(CommonParser.Eof).ParseOrThrow(input);
31+
}
32+
33+
[Theory]
34+
[InlineData("Match [a-z]")]
35+
public static void MatchOperationParsingShouldBeSuccess(string input)
36+
{
37+
LogicalExpressionParser.MatchOperation.Before(CommonParser.Eof).ParseOrThrow(input);
38+
}
39+
40+
[Theory]
41+
[InlineData("In 123, 456, 789")]
42+
[InlineData("In 123,456,789")]
43+
public static void InOperationParsingShouldBeSuccess(string input)
44+
{
45+
LogicalExpressionParser.InOperation.Before(CommonParser.Eof).ParseOrThrow(input);
46+
}
47+
48+
[Theory]
49+
[InlineData("Not 123 Equals 789")]
50+
public static void NotOperationParsingShouldBeSuccess(string input)
51+
{
52+
LogicalExpressionParser.NotOperation.Before(CommonParser.Eof).ParseOrThrow(input);
53+
}
54+
55+
[Theory]
56+
[InlineData("$var$ equals $var$")]
57+
[InlineData("$var$ equals \"$\"")]
58+
[InlineData("Not $var$ equals $var$.Lenght")]
59+
[InlineData("Not $var$ equals $var$.offset.Start")]
60+
[InlineData("$var$ equals $var$.Lenght and Not $var$ StartsWith \"123\"")]
61+
[InlineData("Not $var$ equals $var$.Lenght and $var$ StartsWith \"123\"")]
62+
[InlineData("$var$ Contains $var$.Lenght")]
63+
[InlineData("not $var$ Contains \"123\"")]
64+
[InlineData("$var1$.Lenght Contains $var2$.Lenght")]
65+
[InlineData("$var$ Contains \"123\"")]
66+
[InlineData("$var$ StartsWith $var$.Lenght")]
67+
[InlineData("$var$.Lenght Equals $var$.Lenght")]
68+
[InlineData("$var$ StartsWith \"123\"")]
69+
[InlineData("$var$ EndsWith $var$.Lenght")]
70+
[InlineData("$var$ EndsWith \"123\"")]
71+
[InlineData("$var$ Is Int")]
72+
[InlineData("$var$ Is DateTime")]
73+
[InlineData("$var$ equals $var1$ or $var2$ equals $var1$")]
74+
[InlineData("$var$ match [a-b]+")]
75+
public static void FindRuleExprParsingShouldBeSuccess(string input)
76+
{
77+
var t = TemplatesParser.Template;
78+
var rule = LogicalExpressionParser.LogicalExpression.Before(CommonParser.Eof).ParseOrThrow(input);
79+
var _ruleStr = rule.ToString()?.ToLower();
80+
Assert.NotNull(rule);
81+
Assert.Equal(input.ToLower(), _ruleStr);
82+
}
83+
84+
// [Theory]
85+
// [InlineData("$var$ In \"Is\", \"==\", \"!=\", \"is not\"", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
86+
// [InlineData("$var$ In (\"Is\", \"==\", \"!=\", \"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
87+
// [InlineData("$var$ In \"Is\",\"==\",\"!=\",\"is not\"", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
88+
// [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
89+
// [InlineData("$var$ In(\"Is\",\"==\",\"!=\",\"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
90+
// [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
91+
// [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
92+
// [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
93+
// [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
94+
// [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
95+
// [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
96+
// [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
97+
// [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
98+
// [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
99+
// [InlineData("Not ($var$ equals $var$.Lenght and $var$ StartsWith \"123\")", "Not $var$ equals $var$.Lenght and $var$ StartsWith \"123\"")]
100+
// [InlineData("Not ($var$ equals $var$.Lenght)", "Not $var$ equals $var$.Lenght")]
101+
// public static void FindRuleExprParsingShouldBeEqualsCustomResult(string ruleStr, string customResult)
102+
// {
103+
// var rule = LogicalExpressionParser.LogicalExpression.ParseOrThrow(ruleStr);
104+
// var ruleAsStr = rule.ToString()?.ToLower();
105+
// Assert.NotNull(rule);
106+
// Assert.Equal(ruleAsStr, customResult.ToLower());
107+
// }
108+
//
109+
// [Theory]
110+
// [InlineData("FindRule/NullUnionOperator.txt", "$sign$ In \"is\",\"==\",\"!=\",\"is not\"")]
111+
// [InlineData("FindRule/AssignmentNullUnionOperator.txt", "$sign$ In \"is\",\"==\",\"!=\",\"is not\"")]
112+
// public static void FindRuleParsingFromFileShouldBeSuccess(string filePath, params string[] customResult)
113+
// {
114+
// var ruleStr = File.ReadAllText(filePath);
115+
// var rules = ruleStr.Split(Constant.LineFeed)
116+
// .Select(StructuralSearch.StructuralSearch.ParseFindRule);
117+
// var rulesAsStr = rules.Select(x => x.ToString()).ToArray();
118+
//
119+
// Assert.True(customResult.SequenceEqual(rulesAsStr));
120+
// }
121+
}

src/SimpleStateMachine.StructuralSearch.Tests/ParameterParserTests.cs

Lines changed: 0 additions & 143 deletions
This file was deleted.

0 commit comments

Comments
 (0)