Skip to content

Commit 98920c8

Browse files
committed
refact, escape string parameter, tests with escaped chars
1 parent 6688c05 commit 98920c8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+49
-20
lines changed

src/SimpleStateMachine.StructuralSearch.Tests/FindRuleParserTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class FindRuleParserTests
88
{
99
[Theory]
1010
[InlineData("equals $var$")]
11+
[InlineData("equals \"\\$\"")]
1112
[InlineData("Not equals $var$.Lenght")]
1213
[InlineData("Not equals $var$.offset.Start")]
1314
[InlineData("equals $var$.Lenght and Not StartsWith \"123\"")]

src/SimpleStateMachine.StructuralSearch.Tests/ReplaceRuleParserTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ public class ReplaceRuleParserTests
88
{
99
[Theory]
1010
[InlineData("equals $var$", "$var$")]
11+
[InlineData("equals \"\\$\"", "\"\\$\"")]
1112
[InlineData("Not equals $var$.Lenght", "$var$.Lenght")]
1213
[InlineData("Not equals $var$.offset.Start", "$var$.offset.Start")]
1314
[InlineData("equals $var$.Lenght and Not StartsWith \"123\"", "$var$.offset.Start.Trim")]
1415
[InlineData("equals $var$.Lenght and Not StartsWith \"\\\"Test\"", "$var$.offset.Start.ToUpper")]
1516
public void FindRuleParsingShouldBeSuccess(string findRule, string replaceRule)
1617
{
17-
string placeholder = "$var$";
18-
string replaceRuleStr = $"{placeholder} {findRule} => {replaceRule}";
18+
var placeholder = "$var$";
19+
var replaceRuleStr = $"{placeholder} {findRule} => {replaceRule}";
1920
var rule = StructuralSearch.ParseReplaceRule(replaceRuleStr);
20-
var _ruleStr = rule.ToString()?.ToLower();
21+
var _ruleStr = rule.ToString().ToLower();
2122
Assert.NotNull(rule);
2223
Assert.Equal(_ruleStr, replaceRuleStr.ToLower());
2324
}

src/SimpleStateMachine.StructuralSearch/Helper/CharHelper.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System;
2+
using System.Linq;
3+
4+
namespace SimpleStateMachine.StructuralSearch.Helper
5+
{
6+
public static class EscapeHelper
7+
{
8+
public static string Escape(string str, Func<char, char> replaceRule)
9+
{
10+
return new string(str.Select(replaceRule).ToArray());
11+
}
12+
13+
public static string EscapeChars(string str, Func<char, char> replaceRule, params char[] filter)
14+
{
15+
return new string(str.Select(c => filter.Contains(c) ? replaceRule(c) : c).ToArray());
16+
}
17+
18+
public static string EscapeExclude(string str, Func<char, char> replaceRule, params char[] excluded)
19+
{
20+
return new string(str.Select(c => excluded.Contains(c) ? c : replaceRule(c)).ToArray());
21+
}
22+
23+
public static string Escape(string str, Func<char, string> replaceRule)
24+
{
25+
return string.Join(string.Empty, str.Select(replaceRule));
26+
}
27+
28+
public static string EscapeChars(string str, Func<char, string> replaceRule, params char[] filter)
29+
{
30+
return string.Join(string.Empty, str.Select(c => filter.Contains(c) ? replaceRule(c) : c.ToString()));
31+
}
32+
33+
public static string EscapeExclude(string str, Func<char, string> replaceRule, params char[] excluded)
34+
{
35+
return string.Join(string.Empty, str.Select(c => excluded.Contains(c) ? c.ToString() : replaceRule(c)));
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)