@@ -9,47 +9,28 @@ namespace MySqlConnector.Tests
9
9
public class StatementPreparerTests
10
10
{
11
11
[ Theory ]
12
- [ InlineData ( GoodSqlText ) ]
13
- [ InlineData ( AnotherGoodSqlText ) ]
14
- [ InlineData ( AnotherGoodSqlText2 ) ]
15
- [ InlineData ( BadSqlText ) ]
16
- public void PrepareQuery ( string sql )
12
+ [ InlineData ( "SELECT Id \n FROM mytable \n WHERE column1 = 2 \n AND column2 = @param" ) ]
13
+ [ InlineData ( "SELECT Id \n FROM mytable \n WHERE column1 = 2 -- mycomment \n AND column2 = @param" ) ]
14
+ [ InlineData ( "SELECT Id \n FROM mytable \n WHERE column1 = 2 -- mycomment \n AND column2 = @param" ) ]
15
+ [ InlineData ( "SELECT Id \n FROM mytable \n WHERE column1 = 2 -- mycomment \n AND column2 = @param" ) ]
16
+ public void Bug429 ( string sql )
17
17
{
18
18
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 ) ;
24
22
}
25
23
26
- [ Fact ]
27
- public void CStyleComment ( )
24
+ [ Theory ]
25
+ [ InlineData ( @"SELECT /* * / @param */ 1;" ) ]
26
+ [ InlineData ( "SELECT # @param \n 1;" ) ]
27
+ [ InlineData ( "SELECT -- @param \n 1;" ) ]
28
+ public void ParametersIgnoredInComments ( string sql )
28
29
{
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 ) ) ;
33
31
}
34
32
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 ) ) ;
54
35
}
55
36
}
0 commit comments