Skip to content

Commit 596a139

Browse files
committed
Verify that invalid SQL throws the right exception.
1 parent f2b77bb commit 596a139

File tree

2 files changed

+44
-3
lines changed

2 files changed

+44
-3
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace MySql.Data.MySqlClient
2+
{
3+
/// <summary>
4+
/// MySQL Server error codes. Taken from <a href="https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html">Server Error Codes and Messages</a>.
5+
/// </summary>
6+
public enum MySqlErrorCode
7+
{
8+
/// <summary>
9+
/// You have an error in your SQL syntax (ER_PARSE_ERROR).
10+
/// </summary>
11+
ParseError = 1064,
12+
}
13+
}

tests/SideBySide/QueryTests.cs

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,37 @@ public async Task InvalidSql()
8484
using (var cmd = m_database.Connection.CreateCommand())
8585
{
8686
cmd.CommandText = @"select id from query_invalid_sql limit 1 where id is not null";
87-
await Assert.ThrowsAsync<MySqlException>(() => cmd.ExecuteNonQueryAsync());
88-
await Assert.ThrowsAsync<MySqlException>(() => cmd.ExecuteReaderAsync());
89-
await Assert.ThrowsAsync<MySqlException>(() => cmd.ExecuteScalarAsync());
87+
try
88+
{
89+
await cmd.ExecuteNonQueryAsync();
90+
Assert.True(false, "Exception should have been thrown.");
91+
}
92+
catch (MySqlException ex)
93+
{
94+
Assert.Equal((int) MySqlErrorCode.ParseError, ex.Number);
95+
}
96+
97+
try
98+
{
99+
using (var reader = await cmd.ExecuteReaderAsync())
100+
{
101+
}
102+
Assert.True(false, "Exception should have been thrown.");
103+
}
104+
catch (MySqlException ex)
105+
{
106+
Assert.Equal((int) MySqlErrorCode.ParseError, ex.Number);
107+
}
108+
109+
try
110+
{
111+
await cmd.ExecuteScalarAsync();
112+
Assert.True(false, "Exception should have been thrown.");
113+
}
114+
catch (MySqlException ex)
115+
{
116+
Assert.Equal((int) MySqlErrorCode.ParseError, ex.Number);
117+
}
90118
}
91119

92120
using (var cmd = m_database.Connection.CreateCommand())

0 commit comments

Comments
 (0)