Skip to content

Commit 46c517e

Browse files
committed
Fetch Data - Unsupported Commands
1 parent aa62bf6 commit 46c517e

File tree

5 files changed

+604
-0
lines changed

5 files changed

+604
-0
lines changed

QueryDB.Core.Tests/MSSQLTests.cs

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,43 @@ public void Test_MSSQL_FetchData_Dictionary_DataTypes_Check()
173173
Assert.AreEqual("<root><element>XmlData</element></root>", dataType.ReferenceData["Xml_Column"]);
174174
}
175175

176+
[TestMethod]
177+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
178+
public void Test_MSSQL_FetchData_Dictionary_UnsupportedCommands()
179+
{
180+
var sqlStatements = new List<string>
181+
{
182+
Queries.MSSQLQueries.TestDB.DDL.Create_Table,
183+
Queries.MSSQLQueries.TestDB.DDL.Alter_Table,
184+
Queries.MSSQLQueries.TestDB.DDL.Comment_Table,
185+
Queries.MSSQLQueries.TestDB.DDL.Truncate_Table,
186+
Queries.MSSQLQueries.TestDB.DDL.Drop_Table,
187+
188+
Queries.MSSQLQueries.TestDB.DML.InsertSql,
189+
Queries.MSSQLQueries.TestDB.DML.UpdateSql,
190+
Queries.MSSQLQueries.TestDB.DML.DeleteSql,
191+
192+
Queries.MSSQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
193+
Queries.MSSQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
194+
};
195+
196+
foreach (var sqlStatement in sqlStatements)
197+
{
198+
try
199+
{
200+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
201+
dbContext.FetchData(sqlStatement);
202+
Assert.Fail("No Exception");
203+
}
204+
catch (QueryDBException ex)
205+
{
206+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
207+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
208+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
209+
}
210+
}
211+
}
212+
176213
#endregion
177214

178215
#region Fetch Data Async Tests - << Task<List<DataDictionary>> FetchDataAsync(string selectSql, bool upperCaseKeys = false) >>
@@ -316,6 +353,43 @@ public async Task Test_MSSQL_FetchDataAsync_Dictionary_DataTypes_Check()
316353
Assert.AreEqual("<root><element>XmlData</element></root>", dataType.ReferenceData["Xml_Column"]);
317354
}
318355

356+
[TestMethod]
357+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
358+
public async Task Test_MSSQL_FetchDataAsync_Dictionary_UnsupportedCommands()
359+
{
360+
var sqlStatements = new List<string>
361+
{
362+
Queries.MSSQLQueries.TestDB.DDL.Create_Table,
363+
Queries.MSSQLQueries.TestDB.DDL.Alter_Table,
364+
Queries.MSSQLQueries.TestDB.DDL.Comment_Table,
365+
Queries.MSSQLQueries.TestDB.DDL.Truncate_Table,
366+
Queries.MSSQLQueries.TestDB.DDL.Drop_Table,
367+
368+
Queries.MSSQLQueries.TestDB.DML.InsertSql,
369+
Queries.MSSQLQueries.TestDB.DML.UpdateSql,
370+
Queries.MSSQLQueries.TestDB.DML.DeleteSql,
371+
372+
Queries.MSSQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
373+
Queries.MSSQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
374+
};
375+
376+
foreach (var sqlStatement in sqlStatements)
377+
{
378+
try
379+
{
380+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
381+
await dbContext.FetchDataAsync(sqlStatement);
382+
Assert.Fail("No Exception");
383+
}
384+
catch (QueryDBException ex)
385+
{
386+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
387+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
388+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
389+
}
390+
}
391+
}
392+
319393
#endregion
320394

321395
#region Fetch Data Tests - << List<T> FetchData<T>(string selectSql, bool strict = false) >>
@@ -453,6 +527,43 @@ public void Test_MSSQL_FetchData_Entity_Strict_Error_Check()
453527
}
454528
}
455529

530+
[TestMethod]
531+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
532+
public void Test_MSSQL_FetchData_Entity_UnsupportedCommands()
533+
{
534+
var sqlStatements = new List<string>
535+
{
536+
Queries.MSSQLQueries.TestDB.DDL.Create_Table,
537+
Queries.MSSQLQueries.TestDB.DDL.Alter_Table,
538+
Queries.MSSQLQueries.TestDB.DDL.Comment_Table,
539+
Queries.MSSQLQueries.TestDB.DDL.Truncate_Table,
540+
Queries.MSSQLQueries.TestDB.DDL.Drop_Table,
541+
542+
Queries.MSSQLQueries.TestDB.DML.InsertSql,
543+
Queries.MSSQLQueries.TestDB.DML.UpdateSql,
544+
Queries.MSSQLQueries.TestDB.DML.DeleteSql,
545+
546+
Queries.MSSQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
547+
Queries.MSSQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
548+
};
549+
550+
foreach (var sqlStatement in sqlStatements)
551+
{
552+
try
553+
{
554+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
555+
dbContext.FetchData<Entities.MSSQL.Orders>(sqlStatement);
556+
Assert.Fail("No Exception");
557+
}
558+
catch (QueryDBException ex)
559+
{
560+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
561+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
562+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
563+
}
564+
}
565+
}
566+
456567
#endregion
457568

458569
#region Fetch Data Async Tests - << Task<List<T>> FetchDataAsync<T>(string selectSql, bool strict = false) >>
@@ -590,6 +701,43 @@ public async Task Test_MSSQL_FetchDataAsync_Entity_Strict_Error_Check()
590701
}
591702
}
592703

704+
[TestMethod]
705+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
706+
public async Task Test_MSSQL_FetchDataAsync_Entity_UnsupportedCommands()
707+
{
708+
var sqlStatements = new List<string>
709+
{
710+
Queries.MSSQLQueries.TestDB.DDL.Create_Table,
711+
Queries.MSSQLQueries.TestDB.DDL.Alter_Table,
712+
Queries.MSSQLQueries.TestDB.DDL.Comment_Table,
713+
Queries.MSSQLQueries.TestDB.DDL.Truncate_Table,
714+
Queries.MSSQLQueries.TestDB.DDL.Drop_Table,
715+
716+
Queries.MSSQLQueries.TestDB.DML.InsertSql,
717+
Queries.MSSQLQueries.TestDB.DML.UpdateSql,
718+
Queries.MSSQLQueries.TestDB.DML.DeleteSql,
719+
720+
Queries.MSSQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
721+
Queries.MSSQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
722+
};
723+
724+
foreach (var sqlStatement in sqlStatements)
725+
{
726+
try
727+
{
728+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
729+
await dbContext.FetchDataAsync<Entities.MSSQL.Orders>(sqlStatement);
730+
Assert.Fail("No Exception");
731+
}
732+
catch (QueryDBException ex)
733+
{
734+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
735+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
736+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
737+
}
738+
}
739+
}
740+
593741
#endregion
594742

595743
#region Execute Scalar Tests - << string ExecuteScalar(string sqlStatement) >>

QueryDB.Core.Tests/MySQLTests.cs

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,43 @@ public void Test_MySQL_FetchData_Dictionary_DataTypes_Check()
163163
Assert.AreEqual("This is a varchar", dataType.ReferenceData["VarChar_Column"]);
164164
}
165165

166+
[TestMethod]
167+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
168+
public void Test_MySQL_FetchData_Dictionary_UnsupportedCommands()
169+
{
170+
var sqlStatements = new List<string>
171+
{
172+
Queries.MySQLQueries.TestDB.DDL.Create_Table,
173+
Queries.MySQLQueries.TestDB.DDL.Alter_Table,
174+
Queries.MySQLQueries.TestDB.DDL.Comment_Table,
175+
Queries.MySQLQueries.TestDB.DDL.Truncate_Table,
176+
Queries.MySQLQueries.TestDB.DDL.Drop_Table,
177+
178+
Queries.MySQLQueries.TestDB.DML.InsertSql,
179+
Queries.MySQLQueries.TestDB.DML.UpdateSql,
180+
Queries.MySQLQueries.TestDB.DML.DeleteSql,
181+
182+
Queries.MySQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
183+
Queries.MySQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
184+
};
185+
186+
foreach (var sqlStatement in sqlStatements)
187+
{
188+
try
189+
{
190+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
191+
dbContext.FetchData(sqlStatement);
192+
Assert.Fail("No Exception");
193+
}
194+
catch (QueryDBException ex)
195+
{
196+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
197+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
198+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
199+
}
200+
}
201+
}
202+
166203
#endregion
167204

168205
#region Fetch Data Async Tests - << Task<List<DataDictionary>> FetchDataAsync(string selectSql, bool upperCaseKeys = false) >>
@@ -296,6 +333,43 @@ public async Task Test_MySQL_FetchDataAsync_Dictionary_DataTypes_Check()
296333
Assert.AreEqual("This is a varchar", dataType.ReferenceData["VarChar_Column"]);
297334
}
298335

336+
[TestMethod]
337+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
338+
public async Task Test_MySQL_FetchDataAsync_Dictionary_UnsupportedCommands()
339+
{
340+
var sqlStatements = new List<string>
341+
{
342+
Queries.MySQLQueries.TestDB.DDL.Create_Table,
343+
Queries.MySQLQueries.TestDB.DDL.Alter_Table,
344+
Queries.MySQLQueries.TestDB.DDL.Comment_Table,
345+
Queries.MySQLQueries.TestDB.DDL.Truncate_Table,
346+
Queries.MySQLQueries.TestDB.DDL.Drop_Table,
347+
348+
Queries.MySQLQueries.TestDB.DML.InsertSql,
349+
Queries.MySQLQueries.TestDB.DML.UpdateSql,
350+
Queries.MySQLQueries.TestDB.DML.DeleteSql,
351+
352+
Queries.MySQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
353+
Queries.MySQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
354+
};
355+
356+
foreach (var sqlStatement in sqlStatements)
357+
{
358+
try
359+
{
360+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
361+
await dbContext.FetchDataAsync(sqlStatement);
362+
Assert.Fail("No Exception");
363+
}
364+
catch (QueryDBException ex)
365+
{
366+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
367+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
368+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
369+
}
370+
}
371+
}
372+
299373
#endregion
300374

301375
#region Fetch Data Tests - << List<T> FetchData<T>(string selectSql, bool strict = false) >>
@@ -423,6 +497,43 @@ public void Test_MySQL_FetchData_Entity_Strict_Error_Check()
423497
}
424498
}
425499

500+
[TestMethod]
501+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
502+
public void Test_MySQL_FetchData_Entity_UnsupportedCommands()
503+
{
504+
var sqlStatements = new List<string>
505+
{
506+
Queries.MySQLQueries.TestDB.DDL.Create_Table,
507+
Queries.MySQLQueries.TestDB.DDL.Alter_Table,
508+
Queries.MySQLQueries.TestDB.DDL.Comment_Table,
509+
Queries.MySQLQueries.TestDB.DDL.Truncate_Table,
510+
Queries.MySQLQueries.TestDB.DDL.Drop_Table,
511+
512+
Queries.MySQLQueries.TestDB.DML.InsertSql,
513+
Queries.MySQLQueries.TestDB.DML.UpdateSql,
514+
Queries.MySQLQueries.TestDB.DML.DeleteSql,
515+
516+
Queries.MySQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
517+
Queries.MySQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
518+
};
519+
520+
foreach (var sqlStatement in sqlStatements)
521+
{
522+
try
523+
{
524+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
525+
dbContext.FetchData<Entities.MSSQL.Orders>(sqlStatement);
526+
Assert.Fail("No Exception");
527+
}
528+
catch (QueryDBException ex)
529+
{
530+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
531+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
532+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
533+
}
534+
}
535+
}
536+
426537
#endregion
427538

428539
#region Fetch Data Async Tests - << List<T> FetchData<T>(string selectSql, bool strict = false) >>
@@ -550,6 +661,43 @@ public async Task Test_MySQL_FetchDataAsync_Entity_Strict_Error_Check()
550661
}
551662
}
552663

664+
[TestMethod]
665+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
666+
public async Task Test_MySQL_FetchDataAsync_Entity_UnsupportedCommands()
667+
{
668+
var sqlStatements = new List<string>
669+
{
670+
Queries.MySQLQueries.TestDB.DDL.Create_Table,
671+
Queries.MySQLQueries.TestDB.DDL.Alter_Table,
672+
Queries.MySQLQueries.TestDB.DDL.Comment_Table,
673+
Queries.MySQLQueries.TestDB.DDL.Truncate_Table,
674+
Queries.MySQLQueries.TestDB.DDL.Drop_Table,
675+
676+
Queries.MySQLQueries.TestDB.DML.InsertSql,
677+
Queries.MySQLQueries.TestDB.DML.UpdateSql,
678+
Queries.MySQLQueries.TestDB.DML.DeleteSql,
679+
680+
Queries.MySQLQueries.TestDB.DCL.GrantSql_Command_Table_User,
681+
Queries.MySQLQueries.TestDB.DCL.RevokeSql_Command_Table_User
682+
};
683+
684+
foreach (var sqlStatement in sqlStatements)
685+
{
686+
try
687+
{
688+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
689+
await dbContext.FetchDataAsync<Entities.MSSQL.Orders>(sqlStatement);
690+
Assert.Fail("No Exception");
691+
}
692+
catch (QueryDBException ex)
693+
{
694+
Assert.AreEqual("Only SELECT queries are supported here.", ex.Message);
695+
Assert.AreEqual("UnsupportedCommand", ex.ErrorType);
696+
Assert.AreEqual("'FetchData' only supports SELECT queries that return result set.", ex.AdditionalInfo);
697+
}
698+
}
699+
}
700+
553701
#endregion
554702

555703
#region Execute Scalar Tests - << string ExecuteScalar(string sqlStatement) >>

0 commit comments

Comments
 (0)