Skip to content

Commit 057b27d

Browse files
committed
Refactor StatementPreparerTests.
1 parent 9ea94d2 commit 057b27d

File tree

1 file changed

+16
-35
lines changed

1 file changed

+16
-35
lines changed

tests/MySqlConnector.Tests/StatementPreparerTests.cs

Lines changed: 16 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,47 +9,28 @@ namespace MySqlConnector.Tests
99
public class StatementPreparerTests
1010
{
1111
[Theory]
12-
[InlineData(GoodSqlText)]
13-
[InlineData(AnotherGoodSqlText)]
14-
[InlineData(AnotherGoodSqlText2)]
15-
[InlineData(BadSqlText)]
16-
public void PrepareQuery(string sql)
12+
[InlineData("SELECT Id\nFROM mytable\nWHERE column1 = 2\nAND column2 = @param")]
13+
[InlineData("SELECT Id\nFROM mytable\nWHERE column1 = 2 -- mycomment\nAND column2 = @param")]
14+
[InlineData("SELECT Id\nFROM mytable\nWHERE column1 = 2 -- mycomment\nAND column2 = @param")]
15+
[InlineData("SELECT Id\nFROM mytable\nWHERE column1 = 2 -- mycomment\n AND column2 = @param")]
16+
public void Bug429(string sql)
1717
{
1818
var parameters = new MySqlParameterCollection();
19-
parameters.AddWithValue("c2", 3);
20-
21-
var parsedRequest1 = Encoding.UTF8.GetString(new StatementPreparer(sql, parameters, StatementPreparerOptions.None).ParseAndBindParameters().Slice(1));
22-
23-
Assert.Matches("column2 = 3", parsedRequest1);
19+
parameters.AddWithValue("@param", 123);
20+
var parsedSql = GetParsedSql(sql, parameters);
21+
Assert.Equal(sql.Replace("@param", "123"), parsedSql);
2422
}
2523

26-
[Fact]
27-
public void CStyleComment()
24+
[Theory]
25+
[InlineData(@"SELECT /* * / @param */ 1;")]
26+
[InlineData("SELECT # @param \n1;")]
27+
[InlineData("SELECT -- @param \n1;")]
28+
public void ParametersIgnoredInComments(string sql)
2829
{
29-
var parameters = new MySqlParameterCollection();
30-
var sql = @"SELECT /* * / @param */ 1;";
31-
var parsedSql = Encoding.UTF8.GetString(new StatementPreparer(sql, parameters, StatementPreparerOptions.None).ParseAndBindParameters().Slice(1));
32-
Assert.Equal(sql, parsedSql);
30+
Assert.Equal(sql, GetParsedSql(sql));
3331
}
3432

35-
private const string BadSqlText = @"SELECT Id
36-
FROM mytable
37-
WHERE column1 = 2 -- mycomment
38-
AND column2 = @c2";
39-
40-
private const string GoodSqlText = @"SELECT Id
41-
FROM mytable
42-
WHERE column1 = 2
43-
AND column2 = @c2";
44-
45-
private const string AnotherGoodSqlText = @"SELECT Id
46-
FROM mytable
47-
WHERE column1 = 2 -- mycomment
48-
AND column2 = @c2";
49-
50-
private const string AnotherGoodSqlText2 = @"SELECT Id
51-
FROM mytable
52-
WHERE column1 = 2 -- mycomment
53-
AND column2 = @c2";
33+
private static string GetParsedSql(string input, MySqlParameterCollection parameters = null) =>
34+
Encoding.UTF8.GetString(new StatementPreparer(input, parameters ?? new MySqlParameterCollection(), StatementPreparerOptions.None).ParseAndBindParameters().Slice(1));
5435
}
5536
}

0 commit comments

Comments
 (0)