Skip to content

Commit e98e595

Browse files
Merge pull request #11 from abhinavminhas/dev
Nuget Package Creation - v1.3.0
2 parents 4a231ac + 1a77fa6 commit e98e595

File tree

16 files changed

+1056
-434
lines changed

16 files changed

+1056
-434
lines changed

.github/workflows/publish-nuget-Package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Publish Nuget Package
22

33
env:
4-
NUGET_PACKAGE_NAME_VERSION: "QueryDB.1.2.0.nupkg"
4+
NUGET_PACKAGE_NAME_VERSION: "QueryDB.1.3.0.nupkg"
55

66
on:
77
workflow_dispatch:

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ All notable changes to this project documented here.
33

44
## [Released]
55

6+
## [1.3.0](https://www.nuget.org/packages/QueryDB/1.3.0) - 2025-07-27
7+
### Changed
8+
- Seal adapter classes for better encapsulation.
9+
- Restrict fetch data to SELECT commands.
10+
- Refactoring DBContext to use switch statement for improved clarity and structure.
11+
612
## [1.2.0](https://www.nuget.org/packages/QueryDB/1.2.0) - 2025-03-04
713
### Added
814
- Asynchronous operations
@@ -11,7 +17,7 @@ All notable changes to this project documented here.
1117
- `ExecuteCommandAsync()`
1218
- `ExecuteTransactionAsync()`
1319
### Changed
14-
- Execute transaction to return transaction outcome and exception details in case of failure instead of logging into console.
20+
- Execute transaction to return transaction outcome and exception details in case of failure instead of logging into console.
1521

1622
## [1.1.0](https://www.nuget.org/packages/QueryDB/1.1.0) - 2025-02-20
1723
### Added

QueryDB.Core.Tests/Docker/docker-compose-oracle.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ services:
33
image: container-registry.oracle.com/database/express:21.3.0-xe
44
container_name: oracle-db
55
environment:
6-
ORACLE_PWD: "Secret123456"
6+
ORACLE_PWD: ""
77
ports:
88
- "1521:1521"
99
volumes:

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) >>

0 commit comments

Comments
 (0)