Skip to content

Commit ca43648

Browse files
committed
fix parameters parser, tests
1 parent d3ae8ce commit ca43648

File tree

5 files changed

+48
-4
lines changed

5 files changed

+48
-4
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using Pidgin;
2+
using Xunit;
3+
4+
namespace SimpleStateMachine.StructuralSearch.Tests;
5+
6+
public class ParameterParserTests
7+
{
8+
[Theory]
9+
[InlineData("\\\"132\\\"")]
10+
public void StringParameterParsingShouldBeSuccess(string str)
11+
{
12+
var parameter = ParametersParser.StringParameter.ParseOrThrow(str);
13+
var parameterStr = parameter.ToString().ToLower();
14+
Assert.Equal(parameterStr.ToLower(), str.ToLower());
15+
}
16+
17+
[Theory]
18+
[InlineData("\"132\"")]
19+
public void StringParameterParsingShouldBeFail(string str)
20+
{
21+
Assert.Throws<ParseException>(() => ParametersParser.StringParameter.ParseOrThrow(str));
22+
}
23+
24+
[Theory]
25+
[InlineData("\"132\"")]
26+
[InlineData("\"132$var1$\"")]
27+
[InlineData("\"132 $var1$\"")]
28+
[InlineData("\"132 $var1$ \"")]
29+
[InlineData("\"123$var1$.Lenght456\"")]
30+
[InlineData("\" \\\"132\\\" \"")]
31+
public void StringFormatParameterParsingShouldBeSuccess(string str)
32+
{
33+
var parameter = ParametersParser.StringFormatParameter.ParseOrThrow(str);
34+
var parameterStr = parameter.ToString().ToLower();
35+
Assert.Equal(parameterStr.ToLower(), str.ToLower());
36+
}
37+
38+
[Theory]
39+
[InlineData("\\\"132\\\"")]
40+
public void StringFormatParameterParsingShouldBeFail(string str)
41+
{
42+
Assert.Throws<ParseException>(() => ParametersParser.StringFormatParameter.ParseOrThrow(str));
43+
}
44+
}

src/SimpleStateMachine.StructuralSearch.Tests/ReplaceRuleParserTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace SimpleStateMachine.StructuralSearch.Tests
77
public class ReplaceRuleParserTests
88
{
99
[Theory]
10-
[InlineData("$var1$ equals $var2$ then $var1$ => $var3$")]
10+
[InlineData("$var1$ equals $var2$ then $var1$ => \"test $var3$\"")]
1111
[InlineData("$var1$ equals \"\\$\" then $var1$ => \"\\$\",$var2$ => \"132\"")]
1212
[InlineData("Not $var1$ equals $var$.Lenght then $var1$ => $var$.Lenght")]
1313
[InlineData("Not $var1$ equals $var$.offset.Start then $var1$ => $var$.offset.Start")]
@@ -21,5 +21,6 @@ public void ReplaceRuleParsingShouldBeSuccess(string replaceRule)
2121
Assert.NotNull(rule);
2222
Assert.Equal(ruleStr, replaceRule.ToLower());
2323
}
24+
2425
}
2526
}

src/SimpleStateMachine.StructuralSearch/Rules/Parameters/ParametersParser.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public static class ParametersParser
2323
.AtLeastOnceString()
2424
.Select(x => new StringParameter(x))
2525
.As<char, StringParameter, IRuleParameter>()
26-
.TrimStart()
2726
.Try();
2827

2928
public static readonly Parser<char, IRuleParameter> StringFormatParameter =

src/SimpleStateMachine.StructuralSearch/Rules/Parameters/StringFormatParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public string GetValue()
1919

2020
public override string ToString()
2121
{
22-
return $"{string.Join(Constant.Space, Parameters.Select(x=> x.ToString()))}";
22+
return $"{Constant.DoubleQuotes}{string.Join(string.Empty, Parameters.Select(x=> x.ToString()))}{Constant.DoubleQuotes}";
2323
}
2424
}
2525
}

src/SimpleStateMachine.StructuralSearch/Rules/Parameters/StringParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public override string ToString()
1919
var value = EscapeHelper.EscapeChars(Value, c => $"{Constant.BackSlash}{c}", Constant.PlaceholderSeparator,
2020
Constant.DoubleQuotes);
2121

22-
return $"{Constant.DoubleQuotes}{value}{Constant.DoubleQuotes}";
22+
return $"{value}";
2323
}
2424
}
2525
}

0 commit comments

Comments
 (0)