From 4e9995393d22187352275bc7fa984acce8cc805e Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Sun, 9 Feb 2025 17:13:39 +1100 Subject: [PATCH 01/36] Readme - Badge updates --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 687e1af..e805cfb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # QueryDB *QueryDB solution in .NET*.

-[![Build / Test](https://github.com/abhinavminhas/QueryDB/actions/workflows/build.yml/badge.svg)](https://github.com/abhinavminhas/QueryDB/actions/workflows/build.yml) -[![codecov](https://codecov.io/gh/abhinavminhas/QueryDB/graph/badge.svg?token=L21DM7HZ46)](https://codecov.io/gh/abhinavminhas/QueryDB) +[![Build / Test](https://github.com/abhinavminhas/QueryDB.NET/actions/workflows/build.yml/badge.svg)](https://github.com/abhinavminhas/QueryDB.NET/actions/workflows/build.yml) +[![codecov](https://codecov.io/gh/abhinavminhas/QueryDB.NET/graph/badge.svg?token=L21DM7HZ46)](https://codecov.io/gh/abhinavminhas/QueryDB.NET) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=abhinavminhas_QueryDB&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=abhinavminhas_QueryDB) ![maintainer](https://img.shields.io/badge/Creator/Maintainer-abhinavminhas-e65c00) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) From 6dfff40906fcbebb9253e1f7f69767856657302b Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 13:45:28 +1100 Subject: [PATCH 02/36] Nuget package creation - v1.0.0 --- .github/workflows/publish-nuget-Package.yml | 32 +++++++++++++++++++++ CHANGELOG.md | 11 +++++++ QueryDB/QueryDB.csproj | 24 ++++++++++++++++ README.md | 5 ++-- 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish-nuget-Package.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/publish-nuget-Package.yml b/.github/workflows/publish-nuget-Package.yml new file mode 100644 index 0000000..db9f86a --- /dev/null +++ b/.github/workflows/publish-nuget-Package.yml @@ -0,0 +1,32 @@ +name: Publish Nuget Package + +env: + NUGET_PACKAGE_NAME_VERSION: "QueryDB.1.0.0.nupkg" + +on: + workflow_dispatch: + +jobs: + build: + name: Publish Nuget Package + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-22.04 ] + dotnet-version: [ '3.1.x' ] + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Dotnet Version (${{ matrix.dotnet-version }}) + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '3.1.x' + + - name: Create Package + run: dotnet pack --configuration=Release QueryDB/QueryDB.csproj + + - name: Publish Nuget Package + run: dotnet nuget push QueryDB/bin/Release/${{ env.NUGET_PACKAGE_NAME_VERSION }} -s https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_API_KEY }} + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..09934cd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog +All notable changes to this project documented here. + +## [Released] + +## [1.0.0](https://www.nuget.org/packages/QueryDB/1.0.0) - 2025-02-17 +### Added +- QueryDB framework for simplified querying and executing transactions across multiple database systems. + - Retrieve data from database. + - Execute database commands. + - Execute transactions while maintaining atomicity. \ No newline at end of file diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index a75961e..d58b41c 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -2,6 +2,23 @@ netstandard2.0 + Abhinav Minhas + QueryDB is a flexible database query framework designed to simplify querying and executing transactions across multiple database systems. + +Supported Databases: +- MSSQL +- MySQL +- Oracle +- PostgreSQL + https://github.com/abhinavminhas/QueryDB.NET + https://github.com/abhinavminhas/QueryDB.NET + git + LICENSE + sql, query, rdbms, database, mssql, sqlserver, mysql, oracle, postgresql + QueryDB framework for simplified querying and executing transactions across multiple database systems. +- Retrieve data from database. +- Execute database commands. +- Execute transactions while maintaining atomicity. @@ -11,4 +28,11 @@ + + + True + + + + diff --git a/README.md b/README.md index e805cfb..02bc069 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,14 @@ [![codecov](https://codecov.io/gh/abhinavminhas/QueryDB.NET/graph/badge.svg?token=L21DM7HZ46)](https://codecov.io/gh/abhinavminhas/QueryDB.NET) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=abhinavminhas_QueryDB&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=abhinavminhas_QueryDB) ![maintainer](https://img.shields.io/badge/Creator/Maintainer-abhinavminhas-e65c00) -[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) +[![NuGet](https://img.shields.io/nuget/v/QueryDB?color=%23004880&label=Nuget)](https://www.nuget.org/packages/QueryDB/) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=abhinavminhas_QueryDB&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=abhinavminhas_QueryDB) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=abhinavminhas_QueryDB&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=abhinavminhas_QueryDB) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=abhinavminhas_QueryDB&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=abhinavminhas_QueryDB) -QueryDB framework project is a flexible database query tool designed to facilitate and simplify querying multiple database systems. +QueryDB is a flexible database query framework designed to simplify querying and executing transactions across multiple database systems. ## Supported Databases - [MSSQL](https://www.microsoft.com/en-us/sql-server) From 9baa022e51fd353916764bd1a9c1a053f728cf42 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 13:53:06 +1100 Subject: [PATCH 03/36] Dependency Update - Microsoft.Data.SqlClient (5.2.1 -> 5.2.2) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index d58b41c..38e93b1 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -22,7 +22,7 @@ Supported Databases: - + From a3492418d2a4f225f361a730a7d6f74d5f7d22d1 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 13:58:48 +1100 Subject: [PATCH 04/36] Dependency Update - MySql.Data (8.0.31 -> 9.2.0) --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- QueryDB/QueryDB.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 099c523..5854ed8 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index 38e93b1..65315c4 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -23,7 +23,7 @@ Supported Databases: - + From 9ced4a067765d1a2f95b08663c9bb3dc07a23e15 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 14:05:11 +1100 Subject: [PATCH 05/36] Dependency Update - Npgsql (7.0.8 -> 8.0.6) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index 65315c4..97fee41 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -24,7 +24,7 @@ Supported Databases: - + From e312240f2b3ebe15d640135ce38a3b776f059451 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 14:07:13 +1100 Subject: [PATCH 06/36] Dependency Update - Oracle.ManagedDataAccess.Core (2.19.240 -> 2.19.260) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index 97fee41..ae0f8ad 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -25,7 +25,7 @@ Supported Databases: - + From d534908e6f47935448885e8f90b0b135c9db6ef1 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:04:12 +1100 Subject: [PATCH 07/36] Revert dependency updates --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- QueryDB/QueryDB.csproj | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 5854ed8..099c523 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index ae0f8ad..d58b41c 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -22,10 +22,10 @@ Supported Databases: - - - - + + + + From 81280cf82f3b0b84c3f095e65938cb270ad10a4f Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:12:36 +1100 Subject: [PATCH 08/36] Dependency Update - Microsoft.Data.SqlClient (5.2.1 -> 5.2.2) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index d58b41c..38e93b1 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -22,7 +22,7 @@ Supported Databases: - + From 513aa43c18a0455bd614173cc4fdc20192ac5b1c Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:21:53 +1100 Subject: [PATCH 09/36] Dependency Update - MySql.Data (8.0.31 -> 8.0.32.1) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index 38e93b1..52e42de 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -23,7 +23,7 @@ Supported Databases: - + From 6aebf71289c090ebc03d8c81e1cb9875a0c50595 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:28:03 +1100 Subject: [PATCH 10/36] Include build on .NET 5.0.x & .NET 9.0.x --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0de9c9a..b331d74 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: os: [ windows-2022, ubuntu-22.04, macOS-14 ] - dotnet-version: [ '3.1.x', '6.0.x', '7.0.x', '8.0.x' ] + dotnet-version: [ '3.1.x', '5.0.x', '6.0.x', '7.0.x', '8.0.x', '9.0.x' ] steps: - name: Checkout Repository From 46ae0765e66ec056f71071e89e97f84ff6013178 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:31:56 +1100 Subject: [PATCH 11/36] Dependency Update - Npgsql (7.0.8 -> 7.0.9) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index 52e42de..dc792ea 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -24,7 +24,7 @@ Supported Databases: - + From 453d776ca69748fb381e1e660756ae19327847d3 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:37:13 +1100 Subject: [PATCH 12/36] Dependency Update - Oracle.ManagedDataAccess.Core (2.19.240 -> 2.19.260) --- QueryDB/QueryDB.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB/QueryDB.csproj b/QueryDB/QueryDB.csproj index dc792ea..868421b 100644 --- a/QueryDB/QueryDB.csproj +++ b/QueryDB/QueryDB.csproj @@ -25,7 +25,7 @@ Supported Databases: - + From 13b1dabd12d5289c9f7dbf4d903b13f665d50fd8 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:44:28 +1100 Subject: [PATCH 13/36] Multiple .NET target frameworks --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 099c523..125b45c 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0 false From 1d0ad0040c9001446fa4a88f9be3925a739ed779 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 19:51:51 +1100 Subject: [PATCH 14/36] Revert - Multiple .NET target frameworks --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 125b45c..4a2beec 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0 + netcoreapp3.1 false From f368f9b61fc26115f600e2c3a59169bb00de1cce Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 20:14:03 +1100 Subject: [PATCH 15/36] .NET test project dependency updates --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 4a2beec..537ba53 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -7,14 +7,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + From 0d39fcc27badc13f6da0169ed9660360e0ed5cd2 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 20:42:45 +1100 Subject: [PATCH 16/36] Revert - .NET test project dependency updates --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 537ba53..4a2beec 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -7,14 +7,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + From b011d2ee74582a230647bb0e11cd929e30457c6a Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 20:52:28 +1100 Subject: [PATCH 17/36] Test dependency updates - coverlet.msbuild (6.0.2 -> 6.0.4) --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 4a2beec..25b5109 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -7,7 +7,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive From c1973122cb91fe6b8651c29b0a948fae46866757 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 21:04:24 +1100 Subject: [PATCH 18/36] Test dependency updates - MSTest.TestAdapter/MSTest.TestFramework (3.4.3 -> 3.8.0) --- QueryDB.Core.Tests/App.config | 1 - QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 4 ++-- QueryDB.Core.Tests/TestBase.cs | 9 --------- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/QueryDB.Core.Tests/App.config b/QueryDB.Core.Tests/App.config index 3830d0f..6568e0c 100644 --- a/QueryDB.Core.Tests/App.config +++ b/QueryDB.Core.Tests/App.config @@ -1,7 +1,6 @@  - diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 25b5109..9e77ff1 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -12,8 +12,8 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/QueryDB.Core.Tests/TestBase.cs b/QueryDB.Core.Tests/TestBase.cs index 0163cb9..e20e286 100644 --- a/QueryDB.Core.Tests/TestBase.cs +++ b/QueryDB.Core.Tests/TestBase.cs @@ -22,15 +22,6 @@ public class TestBase protected const string QUERY_DB_EXCEPTION_TESTS = "QUERY-DB-EXCEPTION-TESTS"; protected const string UNKNOW_DB_TESTS = "UNKNOW-DB-TESTS"; - [AssemblyInitialize] - internal void CheckDockerImages() - { - if (_useDocker.Equals("true")) - { - //TBD - } - } - protected string ConvertToUTCInUSFormat(string dateString) { DateTimeOffset date; From 5ab1724cc58bf50586f0cee56ec2205940b8d515 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 21:12:30 +1100 Subject: [PATCH 19/36] Test dependency updates - Microsoft.NET.Test.Sd (17.10.0 -> 17.13.0) --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 9e77ff1..842e7a0 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -11,7 +11,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + From d0fea6e7d582b4a5e8af3b2dabf96e11c5608965 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 21:16:33 +1100 Subject: [PATCH 20/36] Test dependency updates - MSTest.TestAdapter/MSTest.TestFramework (3.4.3 -> 3.8.0) --- QueryDB.Core.Tests/TestBase.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/QueryDB.Core.Tests/TestBase.cs b/QueryDB.Core.Tests/TestBase.cs index e20e286..28c1493 100644 --- a/QueryDB.Core.Tests/TestBase.cs +++ b/QueryDB.Core.Tests/TestBase.cs @@ -1,5 +1,4 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; +using System; using System.Configuration; using System.Globalization; using System.IO; @@ -8,7 +7,6 @@ namespace QueryDB.Core.Tests { public class TestBase { - private readonly string _useDocker = ConfigurationManager.AppSettings["UseDocker"]; protected readonly string MSSQLConnectionString = ConfigurationManager.AppSettings["MSSQLConnection"]; protected readonly string MySQLConnectionString = ConfigurationManager.AppSettings["MySQLConnection"]; protected readonly string OracleConnectionString = ConfigurationManager.AppSettings["OracleConnection"]; From 45933c27fe5eee577b133b116d5cb1b9ae13645f Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 22:13:13 +1100 Subject: [PATCH 21/36] Replace 'App.config' with 'appsettings.json' --- .github/workflows/build.yml | 8 +++--- .github/workflows/coverage.yml | 4 +-- QueryDB.Core.Tests/App.config | 9 ------- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 13 +++------- QueryDB.Core.Tests/TestBase.cs | 26 +++++++++++++++----- QueryDB.Core.Tests/appsettings.json | 6 +++++ 6 files changed, 36 insertions(+), 30 deletions(-) delete mode 100644 QueryDB.Core.Tests/App.config create mode 100644 QueryDB.Core.Tests/appsettings.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b331d74..3606878 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,10 +31,10 @@ jobs: with: dotnet-version: ${{ matrix.dotnet-version }} - - name: Find And Replace Values (App Config) + - name: Find And Replace Values (App Settings) uses: abhinavminhas/replace-tokens@main with: - files: '${{ github.workspace }}/QueryDB.Core.Tests/App.config' + files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build @@ -86,10 +86,10 @@ jobs: with: dotnet-version: ${{ matrix.dotnet-version }} - - name: Find And Replace Values (App Config) + - name: Find And Replace Values (App Settings) uses: abhinavminhas/replace-tokens@main with: - files: '${{ github.workspace }}/QueryDB.Core.Tests/App.config' + files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8d6f1db..6be9903 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -22,10 +22,10 @@ jobs: with: dotnet-version: ${{ matrix.dotnet-version }} - - name: Find And Replace Values (App Config) + - name: Find And Replace Values (App Settings) uses: abhinavminhas/replace-tokens@main with: - files: '${{ github.workspace }}/QueryDB.Core.Tests/App.config' + files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build diff --git a/QueryDB.Core.Tests/App.config b/QueryDB.Core.Tests/App.config deleted file mode 100644 index 6568e0c..0000000 --- a/QueryDB.Core.Tests/App.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 842e7a0..ed97e8d 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -11,10 +11,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + - @@ -22,17 +22,12 @@ + + Always + Always - - - - - - - - diff --git a/QueryDB.Core.Tests/TestBase.cs b/QueryDB.Core.Tests/TestBase.cs index 28c1493..c2b37cb 100644 --- a/QueryDB.Core.Tests/TestBase.cs +++ b/QueryDB.Core.Tests/TestBase.cs @@ -1,5 +1,5 @@ -using System; -using System.Configuration; +using Microsoft.Extensions.Configuration; +using System; using System.Globalization; using System.IO; @@ -7,10 +7,11 @@ namespace QueryDB.Core.Tests { public class TestBase { - protected readonly string MSSQLConnectionString = ConfigurationManager.AppSettings["MSSQLConnection"]; - protected readonly string MySQLConnectionString = ConfigurationManager.AppSettings["MySQLConnection"]; - protected readonly string OracleConnectionString = ConfigurationManager.AppSettings["OracleConnection"]; - protected readonly string PostgreSQLConnectionString = ConfigurationManager.AppSettings["PostgreSQLConnection"]; + private readonly IConfiguration _configuration; + protected readonly string MSSQLConnectionString; + protected readonly string MySQLConnectionString; + protected readonly string OracleConnectionString; + protected readonly string PostgreSQLConnectionString; protected const string DB_TESTS = "DB-TESTS"; protected const string SMOKE_TESTS = "SMOKE-TESTS"; protected const string MSSQL_TESTS = "MSSQL-TESTS"; @@ -20,6 +21,19 @@ public class TestBase protected const string QUERY_DB_EXCEPTION_TESTS = "QUERY-DB-EXCEPTION-TESTS"; protected const string UNKNOW_DB_TESTS = "UNKNOW-DB-TESTS"; + public TestBase() + { + _configuration = new ConfigurationBuilder() + .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .Build(); + + MSSQLConnectionString = _configuration["MSSQLConnection"]; + MySQLConnectionString = _configuration["MySQLConnection"]; + OracleConnectionString = _configuration["OracleConnection"]; + PostgreSQLConnectionString = _configuration["PostgreSQLConnection"]; + } + protected string ConvertToUTCInUSFormat(string dateString) { DateTimeOffset date; diff --git a/QueryDB.Core.Tests/appsettings.json b/QueryDB.Core.Tests/appsettings.json new file mode 100644 index 0000000..b94a9ff --- /dev/null +++ b/QueryDB.Core.Tests/appsettings.json @@ -0,0 +1,6 @@ +{ + "MSSQLConnection": "Data Source=(local);Initial Catalog=master;User Id=SA;Password=__DB_PASSWORD__;Encrypt=False;", + "MySQLConnection": "server=localhost;database=mysql;uid=root;pwd=__DB_PASSWORD__", + "OracleConnection": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID = XE))); User Id = sys;Password=__DB_PASSWORD__;DBA Privilege=SYSDBA", + "PostgreSQLConnection": "Host=localhost;Port=5432;Database=postgres;Username=sys;Password=__DB_PASSWORD__;" +} \ No newline at end of file From 6bbecc72f5d727e25128674459c0c69f98659068 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 22:18:32 +1100 Subject: [PATCH 22/36] Remove oracle.sql from output directory --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index ed97e8d..9b86cf6 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -25,9 +25,6 @@ Always - - Always - From 49f5548f3afd9d06d3fd269034ed1c47cee631e4 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 22:24:55 +1100 Subject: [PATCH 23/36] Revert - Remove oracle.sql from output directory --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index 9b86cf6..ed97e8d 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -25,6 +25,9 @@ Always + + Always + From b84ec7e67b4b20e93cc9535753b5317fbdb8d5b1 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 22:43:37 +1100 Subject: [PATCH 24/36] CQ - MSTEST Assertions --- QueryDB.Core.Tests/MSSQLTests.cs | 50 +++++++++++++------------- QueryDB.Core.Tests/MySQLTests.cs | 50 +++++++++++++------------- QueryDB.Core.Tests/OracleTests.cs | 52 +++++++++++++-------------- QueryDB.Core.Tests/PostgreSQLTests.cs | 50 +++++++++++++------------- 4 files changed, 101 insertions(+), 101 deletions(-) diff --git a/QueryDB.Core.Tests/MSSQLTests.cs b/QueryDB.Core.Tests/MSSQLTests.cs index 92f072e..a2bedec 100644 --- a/QueryDB.Core.Tests/MSSQLTests.cs +++ b/QueryDB.Core.Tests/MSSQLTests.cs @@ -39,7 +39,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Name"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Benjamin", agent.ReferenceData["Agent_Name"]); @@ -55,7 +55,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery_UpperCaseKeys() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]); @@ -71,7 +71,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery_Joins() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Ivan", agent.ReferenceData["Agent_Name"]); @@ -89,7 +89,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery_Joins_UpperCaseKeys() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]); @@ -107,7 +107,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery_Aliases() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Ivan", agent.ReferenceData["Agent"]); @@ -123,7 +123,7 @@ public void Test_MSSQL_FetchData_Dictionary_SelectQuery_Aliases_UpperCaseKeys() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]); @@ -139,7 +139,7 @@ public void Test_MSSQL_FetchData_Dictionary_DataTypes_Check() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("9223372036854775807", dataType.ReferenceData["BigInt_Column"]); Assert.AreEqual("EjRWeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", dataType.ReferenceData["Binary_Column"]); @@ -182,7 +182,7 @@ public void Test_MSSQL_FetchData_Entity_SelectQuery() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Name == "Benjamin"); Assert.AreEqual("A009", agent.Agent_Code); Assert.AreEqual("Benjamin", agent.Agent_Name); @@ -198,7 +198,7 @@ public void Test_MSSQL_FetchData_Entity_SelectQuery_Joins() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent_Name); @@ -209,10 +209,10 @@ public void Test_MSSQL_FetchData_Entity_SelectQuery_Joins() Assert.AreEqual((decimal)500.00, agent.Advance_Amount); Assert.AreEqual("SOD", agent.Ord_Description); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent); - Assert.AreEqual(null, agent.Agent_Location); - Assert.AreEqual(null, agent.Customer); - Assert.AreEqual(null, agent.Customer_Location); + Assert.IsNull(agent.Agent); + Assert.IsNull(agent.Agent_Location); + Assert.IsNull(agent.Customer); + Assert.IsNull(agent.Customer_Location); } [TestMethod] @@ -221,7 +221,7 @@ public void Test_MSSQL_FetchData_Entity_SelectQuery_Aliases() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent); @@ -230,12 +230,12 @@ public void Test_MSSQL_FetchData_Entity_SelectQuery_Aliases() Assert.AreEqual("Shilton", agent.Customer); Assert.AreEqual("Torento", agent.Customer_Location); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent_Name); - Assert.AreEqual(null, agent.Cust_Name); + Assert.IsNull(agent.Agent_Name); + Assert.IsNull(agent.Cust_Name); Assert.AreEqual(0, agent.Ord_Num); Assert.AreEqual(0, agent.Ord_Amount); Assert.AreEqual(0, agent.Advance_Amount); - Assert.AreEqual(null, agent.Ord_Description); + Assert.IsNull(agent.Ord_Description); } [TestMethod] @@ -244,7 +244,7 @@ public void Test_MSSQL_FetchData_Entity_DataTypes_Check() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual(9223372036854775807, dataType.BigInt_Column); Assert.AreEqual("EjRWeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", ConvertByteArrayToBase64(dataType.Binary_Column)); @@ -283,7 +283,7 @@ public void Test_MSSQL_FetchData_Entity_Strict_Check() { var selectSql = Queries.MSSQLQueries.TestDB.SelectSql_Strict; var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, strict: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("A003", dataType.Agent_Code); Assert.AreEqual("Alex", dataType.Agent); @@ -375,7 +375,7 @@ public void Test_MSSQL_ExecuteCommand_DML_Queries() var rows = dbContext.ExecuteCommand(insertSql); Assert.AreEqual(1, rows); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -388,7 +388,7 @@ public void Test_MSSQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(updateSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -401,7 +401,7 @@ public void Test_MSSQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(deleteSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -543,7 +543,7 @@ public void Test_MSSQL_ExecuteTransaction_DML_Multiple_Queries() var result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -560,7 +560,7 @@ public void Test_MSSQL_ExecuteTransaction_DML_Multiple_Queries() result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -584,7 +584,7 @@ public void Test_MSSQL_ExecuteTransaction_Incomplete_Transaction_Rollback_On_Err var result = dbContext.ExecuteTransaction(statements); Assert.IsFalse(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] diff --git a/QueryDB.Core.Tests/MySQLTests.cs b/QueryDB.Core.Tests/MySQLTests.cs index c8812cc..a176ecc 100644 --- a/QueryDB.Core.Tests/MySQLTests.cs +++ b/QueryDB.Core.Tests/MySQLTests.cs @@ -39,7 +39,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Name"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Benjamin", agent.ReferenceData["Agent_Name"]); @@ -55,7 +55,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery_UpperCaseKeys() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]); @@ -71,7 +71,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery_Joins() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Ivan", agent.ReferenceData["Agent_Name"]); @@ -89,7 +89,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery_Joins_UpperCaseKeys() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]); @@ -107,7 +107,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery_Aliases() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("Ivan", agent.ReferenceData["Agent"]); @@ -123,7 +123,7 @@ public void Test_MySQL_FetchData_Dictionary_SelectQuery_Aliases_UpperCaseKeys() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]); @@ -139,7 +139,7 @@ public void Test_MySQL_FetchData_Dictionary_DataTypes_Check() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("9223372036854775807", dataType.ReferenceData["BigInt_Column"]); Assert.AreEqual("1", dataType.ReferenceData["Bit_Column"]); @@ -172,7 +172,7 @@ public void Test_MySQL_FetchData_Entity_SelectQuery() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Name == "Benjamin"); Assert.AreEqual("A009", agent.Agent_Code); Assert.AreEqual("Benjamin", agent.Agent_Name); @@ -188,7 +188,7 @@ public void Test_MySQL_FetchData_Entity_SelectQuery_Joins() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent_Name); @@ -199,10 +199,10 @@ public void Test_MySQL_FetchData_Entity_SelectQuery_Joins() Assert.AreEqual((decimal)500.00, agent.Advance_Amount); Assert.AreEqual("SOD", agent.Ord_Description); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent); - Assert.AreEqual(null, agent.Agent_Location); - Assert.AreEqual(null, agent.Customer); - Assert.AreEqual(null, agent.Customer_Location); + Assert.IsNull(agent.Agent); + Assert.IsNull(agent.Agent_Location); + Assert.IsNull(agent.Customer); + Assert.IsNull(agent.Customer_Location); } [TestMethod] @@ -211,7 +211,7 @@ public void Test_MySQL_FetchData_Entity_SelectQuery_Aliases() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent); @@ -220,12 +220,12 @@ public void Test_MySQL_FetchData_Entity_SelectQuery_Aliases() Assert.AreEqual("Shilton", agent.Customer); Assert.AreEqual("Torento", agent.Customer_Location); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent_Name); - Assert.AreEqual(null, agent.Cust_Name); + Assert.IsNull(agent.Agent_Name); + Assert.IsNull(agent.Cust_Name); Assert.AreEqual(0, agent.Ord_Num); Assert.AreEqual(0, agent.Ord_Amount); Assert.AreEqual(0, agent.Advance_Amount); - Assert.AreEqual(null, agent.Ord_Description); + Assert.IsNull(agent.Ord_Description); } [TestMethod] @@ -234,7 +234,7 @@ public void Test_MySQL_FetchData_Entity_DataTypes_Check() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual(9223372036854775807, dataType.BigInt_Column); Assert.AreEqual((ulong?)1, dataType.Bit_Column); @@ -263,7 +263,7 @@ public void Test_MySQL_FetchData_Entity_Strict_Check() { var selectSql = Queries.MySQLQueries.TestDB.SelectSql_Strict; var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, strict: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("A003", dataType.Agent_Code); Assert.AreEqual("Alex", dataType.Agent); @@ -355,7 +355,7 @@ public void Test_MySQL_ExecuteCommand_DML_Queries() var rows = dbContext.ExecuteCommand(insertSql); Assert.AreEqual(1, rows); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -368,7 +368,7 @@ public void Test_MySQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(updateSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -381,7 +381,7 @@ public void Test_MySQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(deleteSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -515,7 +515,7 @@ public void Test_MySQL_ExecuteTransaction_DML_Multiple_Queries() var result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["Agent_Code"]); Assert.AreEqual("John", agent.ReferenceData["Agent_Name"]); @@ -532,7 +532,7 @@ public void Test_MySQL_ExecuteTransaction_DML_Multiple_Queries() result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -556,7 +556,7 @@ public void Test_MySQL_ExecuteTransaction_Incomplete_Transaction_Rollback_On_Err var result = dbContext.ExecuteTransaction(statements); Assert.IsFalse(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] diff --git a/QueryDB.Core.Tests/OracleTests.cs b/QueryDB.Core.Tests/OracleTests.cs index c8a5e4f..a471859 100644 --- a/QueryDB.Core.Tests/OracleTests.cs +++ b/QueryDB.Core.Tests/OracleTests.cs @@ -39,7 +39,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery() { var selectSql = Queries.OracleQueries.TestDB.SelectSql; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]); @@ -55,7 +55,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery_UpperCaseKeys() { var selectSql = Queries.OracleQueries.TestDB.SelectSql; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]); @@ -71,7 +71,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery_Joins() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]); @@ -89,7 +89,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery_Joins_UpperCaseKeys() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]); @@ -107,7 +107,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery_Aliases() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]); @@ -123,7 +123,7 @@ public void Test_Oracle_FetchData_Dictionary_SelectQuery_Aliases_UpperCaseKeys() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]); @@ -139,7 +139,7 @@ public void Test_Oracle_FetchData_Dictionary_DataTypes_Check() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 2); + Assert.AreEqual(2, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual(GetBase64Content(Environment.CurrentDirectory + "/SeedData/oracle.sql"), dataType.ReferenceData["BFILE_COLUMN"]); Assert.AreEqual("3q2+7w==", dataType.ReferenceData["BLOB_COLUMN"]); @@ -173,14 +173,14 @@ public void Test_Oracle_FetchData_Entity_SelectQuery() { var selectSql = Queries.OracleQueries.TestDB.SelectSql; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Name == "Benjamin"); Assert.AreEqual("A009", agent.Agent_Code); Assert.AreEqual("Benjamin", agent.Agent_Name); Assert.AreEqual("Hampshair", agent.Working_Area); Assert.AreEqual(0.11, agent.Commission); Assert.AreEqual("008-22536178", agent.Phone_No); - Assert.AreEqual(null, agent.Country); + Assert.IsNull(agent.Country); } [TestMethod] @@ -189,7 +189,7 @@ public void Test_Oracle_FetchData_Entity_SelectQuery_Joins() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent_Name); @@ -200,10 +200,10 @@ public void Test_Oracle_FetchData_Entity_SelectQuery_Joins() Assert.AreEqual(500.00, agent.Advance_Amount); Assert.AreEqual("SOD", agent.Ord_Description); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent); - Assert.AreEqual(null, agent.Agent_Location); - Assert.AreEqual(null, agent.Customer); - Assert.AreEqual(null, agent.Customer_Location); + Assert.IsNull(agent.Agent); + Assert.IsNull(agent.Agent_Location); + Assert.IsNull(agent.Customer); + Assert.IsNull(agent.Customer_Location); } [TestMethod] @@ -212,7 +212,7 @@ public void Test_Oracle_FetchData_Entity_SelectQuery_Aliases() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent); @@ -221,12 +221,12 @@ public void Test_Oracle_FetchData_Entity_SelectQuery_Aliases() Assert.AreEqual("Shilton", agent.Customer); Assert.AreEqual("Torento", agent.Customer_Location); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent_Name); - Assert.AreEqual(null, agent.Cust_Name); + Assert.IsNull(agent.Agent_Name); + Assert.IsNull(agent.Cust_Name); Assert.AreEqual(0, agent.Ord_Num); Assert.AreEqual(0, agent.Ord_Amount); Assert.AreEqual(0, agent.Advance_Amount); - Assert.AreEqual(null, agent.Ord_Description); + Assert.IsNull(agent.Ord_Description); } [TestMethod] @@ -235,7 +235,7 @@ public void Test_Oracle_FetchData_Entity_DataTypes_Check() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 2); + Assert.AreEqual(2, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual(GetBase64Content(Environment.CurrentDirectory + "/SeedData/oracle.sql"), ConvertByteArrayToBase64(dataType.BFile_Column)); Assert.AreEqual("3q2+7w==", ConvertByteArrayToBase64(dataType.Blob_Column)); @@ -265,7 +265,7 @@ public void Test_Oracle_FetchData_Entity_Strict_Check() { var selectSql = Queries.OracleQueries.TestDB.SelectSql_Strict; var data = new DBContext(DB.Oracle, OracleConnectionString).FetchData(selectSql, strict: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("A003", dataType.Agent_Code); Assert.AreEqual("Alex", dataType.Agent); @@ -357,7 +357,7 @@ public void Test_Oracle_ExecuteCommand_DML_Queries() var rows = dbContext.ExecuteCommand(insertSql); Assert.AreEqual(1, rows); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("John", agent.ReferenceData["AGENT_NAME"]); @@ -370,7 +370,7 @@ public void Test_Oracle_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(updateSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("John", agent.ReferenceData["AGENT_NAME"]); @@ -383,7 +383,7 @@ public void Test_Oracle_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(deleteSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -526,7 +526,7 @@ public void Test_Oracle_ExecuteTransaction_DML_Multiple_Queries() var result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("John", agent.ReferenceData["AGENT_NAME"]); @@ -543,7 +543,7 @@ public void Test_Oracle_ExecuteTransaction_DML_Multiple_Queries() result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -567,7 +567,7 @@ public void Test_Oracle_ExecuteTransaction_Incomplete_Transaction_Rollback_On_Er var result = dbContext.ExecuteTransaction(statements); Assert.IsFalse(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] diff --git a/QueryDB.Core.Tests/PostgreSQLTests.cs b/QueryDB.Core.Tests/PostgreSQLTests.cs index 67cd8df..ec88bea 100644 --- a/QueryDB.Core.Tests/PostgreSQLTests.cs +++ b/QueryDB.Core.Tests/PostgreSQLTests.cs @@ -39,7 +39,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["agent_name"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["agent_code"]); Assert.AreEqual("Benjamin", agent.ReferenceData["agent_name"]); @@ -55,7 +55,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery_UpperCaseKeys() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin"); Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]); @@ -71,7 +71,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery_Joins() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["agent_code"] == "A004" && X.ReferenceData["cust_code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["agent_code"]); Assert.AreEqual("Ivan", agent.ReferenceData["agent_name"]); @@ -89,7 +89,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery_Joins_UpperCaseKeys { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]); @@ -107,7 +107,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery_Aliases() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["agent_code"] == "A004" && X.ReferenceData["cust_code"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["agent_code"]); Assert.AreEqual("Ivan", agent.ReferenceData["agent"]); @@ -123,7 +123,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_SelectQuery_Aliases_UpperCaseKe { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql, upperCaseKeys: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006"); Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]); Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]); @@ -139,7 +139,7 @@ public void Test_PostgreSQL_FetchData_Dictionary_DataTypes_Check() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("9223372036854775807", dataType.ReferenceData["bigint_column"]); Assert.AreEqual("True", dataType.ReferenceData["boolean_column"]); @@ -169,7 +169,7 @@ public void Test_PostgreSQL_FetchData_Entity_SelectQuery() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 12); + Assert.AreEqual(12, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Name == "Benjamin"); Assert.AreEqual("A009", agent.Agent_Code); Assert.AreEqual("Benjamin", agent.Agent_Name); @@ -185,7 +185,7 @@ public void Test_PostgreSQL_FetchData_Entity_SelectQuery_Joins() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Join; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent_Name); @@ -196,10 +196,10 @@ public void Test_PostgreSQL_FetchData_Entity_SelectQuery_Joins() Assert.AreEqual((decimal)500.00, agent.Advance_Amount); Assert.AreEqual("SOD", agent.Ord_Description); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent); - Assert.AreEqual(null, agent.Agent_Location); - Assert.AreEqual(null, agent.Customer); - Assert.AreEqual(null, agent.Customer_Location); + Assert.IsNull(agent.Agent); + Assert.IsNull(agent.Agent_Location); + Assert.IsNull(agent.Customer); + Assert.IsNull(agent.Customer_Location); } [TestMethod] @@ -208,7 +208,7 @@ public void Test_PostgreSQL_FetchData_Entity_SelectQuery_Aliases() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Alias; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var agent = data.FirstOrDefault(X => X.Agent_Code == "A004" && X.Cust_Code == "C00006"); Assert.AreEqual("A004", agent.Agent_Code); Assert.AreEqual("Ivan", agent.Agent); @@ -217,12 +217,12 @@ public void Test_PostgreSQL_FetchData_Entity_SelectQuery_Aliases() Assert.AreEqual("Shilton", agent.Customer); Assert.AreEqual("Torento", agent.Customer_Location); // Non Existent Query Data - Assert.AreEqual(null, agent.Agent_Name); - Assert.AreEqual(null, agent.Cust_Name); + Assert.IsNull(agent.Agent_Name); + Assert.IsNull(agent.Cust_Name); Assert.AreEqual(0, agent.Ord_Num); Assert.AreEqual(0, agent.Ord_Amount); Assert.AreEqual(0, agent.Advance_Amount); - Assert.AreEqual(null, agent.Ord_Description); + Assert.IsNull(agent.Ord_Description); } [TestMethod] @@ -231,7 +231,7 @@ public void Test_PostgreSQL_FetchData_Entity_DataTypes_Check() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_DataTypes; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual(9223372036854775807, dataType.BigInt_Column); Assert.IsTrue(dataType.Boolean_Column); @@ -257,7 +257,7 @@ public void Test_PostgreSQL_FetchData_Entity_Strict_Check() { var selectSql = Queries.PostgreSQLQueries.TestDB.SelectSql_Strict; var data = new DBContext(DB.PostgreSQL, PostgreSQLConnectionString).FetchData(selectSql, strict: true); - Assert.IsTrue(data.Count == 34); + Assert.AreEqual(34, data.Count); var dataType = data.FirstOrDefault(); Assert.AreEqual("A003", dataType.Agent_Code); Assert.AreEqual("Alex", dataType.Agent); @@ -349,7 +349,7 @@ public void Test_PostgreSQL_ExecuteCommand_DML_Queries() var rows = dbContext.ExecuteCommand(insertSql); Assert.AreEqual(1, rows); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["agent_code"]); Assert.AreEqual("John", agent.ReferenceData["agent_name"]); @@ -362,7 +362,7 @@ public void Test_PostgreSQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(updateSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["agent_code"]); Assert.AreEqual("John", agent.ReferenceData["agent_name"]); @@ -375,7 +375,7 @@ public void Test_PostgreSQL_ExecuteCommand_DML_Queries() rows = dbContext.ExecuteCommand(deleteSql); Assert.AreEqual(1, rows); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -509,7 +509,7 @@ public void Test_PostgreSQL_ExecuteTransaction_DML_Multiple_Queries() var result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 1); + Assert.AreEqual(1, data.Count); var agent = data.FirstOrDefault(); Assert.AreEqual("A020", agent.ReferenceData["agent_code"]); Assert.AreEqual("John", agent.ReferenceData["agent_name"]); @@ -526,7 +526,7 @@ public void Test_PostgreSQL_ExecuteTransaction_DML_Multiple_Queries() result = dbContext.ExecuteTransaction(statements); Assert.IsTrue(result); data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] @@ -550,7 +550,7 @@ public void Test_PostgreSQL_ExecuteTransaction_Incomplete_Transaction_Rollback_O var result = dbContext.ExecuteTransaction(statements); Assert.IsFalse(result); var data = dbContext.FetchData(verifyDMLExecution); - Assert.IsTrue(data.Count == 0); + Assert.AreEqual(0, data.Count); } [TestMethod] From 883a508fa90a170fbb4caa0cd5dd29e55b0d3ca5 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 23:01:53 +1100 Subject: [PATCH 25/36] Multiple .NET target frameworks --- QueryDB.Core.Tests/QueryDB.Core.Tests.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj index ed97e8d..c508b11 100644 --- a/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj +++ b/QueryDB.Core.Tests/QueryDB.Core.Tests.csproj @@ -1,7 +1,8 @@  - netcoreapp3.1 + + netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0 false From 1db86fc85de396b1669f14054f8a081d372de298 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 23:18:33 +1100 Subject: [PATCH 26/36] Test target .netcoreapp3.1 --- .github/workflows/build.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3606878..4f4684d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,7 +60,7 @@ jobs: - name: Test if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') }} - run: dotnet test --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS + run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS - name: Docker Compose (Tear Down - DB Containers) if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') && always() }} @@ -111,7 +111,7 @@ jobs: dbPassword: ${{ secrets.DB_PASSWORD }} - name: Test - run: dotnet test --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov + run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov - name: Docker Compose (Tear Down - DB Containers) if: always() diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6be9903..9479abb 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -47,7 +47,7 @@ jobs: dbPassword: ${{ secrets.DB_PASSWORD }} - name: Test - run: dotnet test --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov + run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov - name: Docker Compose (Tear Down - DB Containers) uses: ./.github/workflows/docker-compose-teardown-dbs From c3d8d4dda0c0841120b7f94993379f5677e1c413 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 23:32:51 +1100 Subject: [PATCH 27/36] CQ - Members not accessing instance data can be marked as static --- QueryDB.Core.Tests/TestBase.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/QueryDB.Core.Tests/TestBase.cs b/QueryDB.Core.Tests/TestBase.cs index c2b37cb..c617b24 100644 --- a/QueryDB.Core.Tests/TestBase.cs +++ b/QueryDB.Core.Tests/TestBase.cs @@ -34,7 +34,7 @@ public TestBase() PostgreSQLConnectionString = _configuration["PostgreSQLConnection"]; } - protected string ConvertToUTCInUSFormat(string dateString) + protected static string ConvertToUTCInUSFormat(string dateString) { DateTimeOffset date; string[] formats = { @@ -61,7 +61,7 @@ protected string ConvertToUTCInUSFormat(string dateString) } } - protected string ConvertToUSFormat(string dateString) + protected static string ConvertToUSFormat(string dateString) { DateTime date; string[] formats = { @@ -94,7 +94,7 @@ protected string ConvertToUSFormat(string dateString) } } - protected string GetBase64Content(string filePath) + protected static string GetBase64Content(string filePath) { if (!File.Exists(filePath)) throw new FileNotFoundException("File not found - '" + filePath + "'."); From 1dfa59eaa856d81a70839a1135ae4c2aa09de0b2 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Mon, 17 Feb 2025 23:55:40 +1100 Subject: [PATCH 28/36] Build specific .NET version based on matrix --- .github/workflows/build.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f4684d..5befc92 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,8 +37,21 @@ jobs: files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - - name: Build - run: dotnet build QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + - name: Build (${{ matrix.dotnet-version }}) + run: | + if [[ "${{ matrix.dotnet-version }}" == "3.1"* ]]; then + dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "5.0"* ]]; then + dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "6.0"* ]]; then + dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "7.0"* ]]; then + dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "8.0"* ]]; then + dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "9.0"* ]]; then + dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + fi - name: Docker Compose (Start - DB Containers) if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') }} From a9fd2d36702bc0b533f624b8a534d39d7a835766 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:01:09 +1100 Subject: [PATCH 29/36] Build specific .NET version based on matrix - powershell instead of bash --- .github/workflows/build.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5befc92..256c7d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,20 +38,26 @@ jobs: replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build (${{ matrix.dotnet-version }}) + shell: pwsh run: | - if [[ "${{ matrix.dotnet-version }}" == "3.1"* ]]; then + if (${{ matrix.dotnet-version }} -like "3.1*") { dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - elif [[ "${{ matrix.dotnet-version }}" == "5.0"* ]]; then + } + elseif (${{ matrix.dotnet-version }} -like "5.0*") { dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - elif [[ "${{ matrix.dotnet-version }}" == "6.0"* ]]; then + } + elseif (${{ matrix.dotnet-version }} -like "6.0*") { dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - elif [[ "${{ matrix.dotnet-version }}" == "7.0"* ]]; then + } + elseif (${{ matrix.dotnet-version }} -like "7.0*") { dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - elif [[ "${{ matrix.dotnet-version }}" == "8.0"* ]]; then + } + elseif (${{ matrix.dotnet-version }} -like "8.0*") { dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - elif [[ "${{ matrix.dotnet-version }}" == "9.0"* ]]; then + } + elseif (${{ matrix.dotnet-version }} -like "9.0*") { dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - fi + } - name: Docker Compose (Start - DB Containers) if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') }} From 565c592b6a819e769e498aac5dd1a1acf5cf48dd Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:07:40 +1100 Subject: [PATCH 30/36] Build specific .NET version based on matrix - Powershell verbosity --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 256c7d5..2d8a38d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,22 +41,22 @@ jobs: shell: pwsh run: | if (${{ matrix.dotnet-version }} -like "3.1*") { - dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "5.0*") { - dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "6.0*") { - dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "7.0*") { - dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "8.0*") { - dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "9.0*") { - dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } - name: Docker Compose (Start - DB Containers) From 1c994c6a953737d6bd71d4eed0756d8e7ca173c3 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:12:56 +1100 Subject: [PATCH 31/36] Build specific .NET version based on matrix - Powershell verbosity --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d8a38d..23f64c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,19 +44,19 @@ jobs: dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal } elseif (${{ matrix.dotnet-version }} -like "5.0*") { - dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal + dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed } elseif (${{ matrix.dotnet-version }} -like "6.0*") { - dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal + dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed } elseif (${{ matrix.dotnet-version }} -like "7.0*") { - dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal + dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed } elseif (${{ matrix.dotnet-version }} -like "8.0*") { - dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal + dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed } elseif (${{ matrix.dotnet-version }} -like "9.0*") { - dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal + dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed } - name: Docker Compose (Start - DB Containers) From 80f67e0dacf89767c43e14c9ceeacb2758aab9cc Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:16:50 +1100 Subject: [PATCH 32/36] Build specific .NET version based on matrix - Bash --- .github/workflows/build.yml | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 23f64c2..e029074 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,26 +38,21 @@ jobs: replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build (${{ matrix.dotnet-version }}) - shell: pwsh + shell: bash run: | - if (${{ matrix.dotnet-version }} -like "3.1*") { - dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity normal - } - elseif (${{ matrix.dotnet-version }} -like "5.0*") { - dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed - } - elseif (${{ matrix.dotnet-version }} -like "6.0*") { - dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed - } - elseif (${{ matrix.dotnet-version }} -like "7.0*") { - dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed - } - elseif (${{ matrix.dotnet-version }} -like "8.0*") { - dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed - } - elseif (${{ matrix.dotnet-version }} -like "9.0*") { - dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release --verbosity detailed - } + if [[ "${{ matrix.dotnet-version }}" == "3.1"* ]]; then + dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "5.0"* ]]; then + dotnet build -f net5.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "6.0"* ]]; then + dotnet build -f net6.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "7.0"* ]]; then + dotnet build -f net7.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "8.0"* ]]; then + dotnet build -f net8.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + elif [[ "${{ matrix.dotnet-version }}" == "9.0"* ]]; then + dotnet build -f net9.0 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + fi - name: Docker Compose (Start - DB Containers) if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') }} From 03b46ceaa1c026054fa447f86b131b9bbd532089 Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:24:50 +1100 Subject: [PATCH 33/36] Code Coverage .NET version --- .github/workflows/build.yml | 8 ++++---- .github/workflows/coverage.yml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e029074..42f67d8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,7 @@ jobs: with: dbPassword: ${{ secrets.DB_PASSWORD }} - - name: Test + - name: Test (${{ matrix.dotnet-version }}) if: ${{ (matrix.os == 'ubuntu-22.04') && (matrix.dotnet-version == '3.1.x') }} run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS @@ -106,8 +106,8 @@ jobs: files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - - name: Build - run: dotnet build QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + - name: Build (${{ matrix.dotnet-version }}) + run: dotnet build --f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - name: Docker Compose (Start - DB Containers) uses: ./.github/workflows/docker-compose-start-dbs @@ -124,7 +124,7 @@ jobs: with: dbPassword: ${{ secrets.DB_PASSWORD }} - - name: Test + - name: Test (${{ matrix.dotnet-version }}) run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov - name: Docker Compose (Tear Down - DB Containers) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 9479abb..646ab81 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -28,7 +28,7 @@ jobs: files: '${{ github.workspace }}/QueryDB.Core.Tests/appsettings.json' replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - - name: Build + - name: Build (${{ matrix.dotnet-version }}) run: dotnet build QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - name: Docker Compose (Start - DB Containers) @@ -46,7 +46,7 @@ jobs: with: dbPassword: ${{ secrets.DB_PASSWORD }} - - name: Test + - name: Test (${{ matrix.dotnet-version }}) run: dotnet test --framework netcoreapp3.1 --no-build --logger "console;verbosity=detailed" --verbosity normal --configuration Release --filter TestCategory=DB-TESTS /p:CollectCoverage=true /p:CoverletOutputFormat=lcov - name: Docker Compose (Tear Down - DB Containers) From 458b3c911fc868afb4ea7ce69ceb8a07356c0f3b Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:27:21 +1100 Subject: [PATCH 34/36] Code Coverage .NET version --- .github/workflows/build.yml | 2 +- .github/workflows/coverage.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42f67d8..572e36e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -107,7 +107,7 @@ jobs: replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build (${{ matrix.dotnet-version }}) - run: dotnet build --f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + run: dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - name: Docker Compose (Start - DB Containers) uses: ./.github/workflows/docker-compose-start-dbs diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 646ab81..e2db10a 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -29,7 +29,7 @@ jobs: replacements: '__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }},__DB_PASSWORD__=${{ secrets.DB_PASSWORD }}' - name: Build (${{ matrix.dotnet-version }}) - run: dotnet build QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release + run: dotnet build -f netcoreapp3.1 QueryDB.Core.Tests/QueryDB.Core.Tests.csproj --configuration Release - name: Docker Compose (Start - DB Containers) uses: ./.github/workflows/docker-compose-start-dbs From 1a4e4ad6b235d05e433c53c3a98c7bffd0899abd Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 00:29:38 +1100 Subject: [PATCH 35/36] Introduce test settings in appsettings.json --- QueryDB.Core.Tests/TestBase.cs | 8 ++++---- QueryDB.Core.Tests/appsettings.json | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/QueryDB.Core.Tests/TestBase.cs b/QueryDB.Core.Tests/TestBase.cs index c617b24..972cf2c 100644 --- a/QueryDB.Core.Tests/TestBase.cs +++ b/QueryDB.Core.Tests/TestBase.cs @@ -28,10 +28,10 @@ public TestBase() .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); - MSSQLConnectionString = _configuration["MSSQLConnection"]; - MySQLConnectionString = _configuration["MySQLConnection"]; - OracleConnectionString = _configuration["OracleConnection"]; - PostgreSQLConnectionString = _configuration["PostgreSQLConnection"]; + MSSQLConnectionString = _configuration["TestSettings:MSSQLConnection"]; + MySQLConnectionString = _configuration["TestSettings:MySQLConnection"]; + OracleConnectionString = _configuration["TestSettings:OracleConnection"]; + PostgreSQLConnectionString = _configuration["TestSettings:PostgreSQLConnection"]; } protected static string ConvertToUTCInUSFormat(string dateString) diff --git a/QueryDB.Core.Tests/appsettings.json b/QueryDB.Core.Tests/appsettings.json index b94a9ff..2128e8e 100644 --- a/QueryDB.Core.Tests/appsettings.json +++ b/QueryDB.Core.Tests/appsettings.json @@ -1,6 +1,8 @@ { - "MSSQLConnection": "Data Source=(local);Initial Catalog=master;User Id=SA;Password=__DB_PASSWORD__;Encrypt=False;", - "MySQLConnection": "server=localhost;database=mysql;uid=root;pwd=__DB_PASSWORD__", - "OracleConnection": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID = XE))); User Id = sys;Password=__DB_PASSWORD__;DBA Privilege=SYSDBA", - "PostgreSQLConnection": "Host=localhost;Port=5432;Database=postgres;Username=sys;Password=__DB_PASSWORD__;" + "TestSettings": { + "MSSQLConnection": "Data Source=(local);Initial Catalog=master;User Id=SA;Password=__DB_PASSWORD__;Encrypt=False;", + "MySQLConnection": "server=localhost;database=mysql;uid=root;pwd=__DB_PASSWORD__", + "OracleConnection": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID = XE))); User Id = sys;Password=__DB_PASSWORD__;DBA Privilege=SYSDBA", + "PostgreSQLConnection": "Host=localhost;Port=5432;Database=postgres;Username=sys;Password=__DB_PASSWORD__;" + } } \ No newline at end of file From 52bed8608699a7fa502bd51df51d4b346c30371c Mon Sep 17 00:00:00 2001 From: abhinavminhas Date: Tue, 18 Feb 2025 21:34:31 +1100 Subject: [PATCH 36/36] Update change log --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09934cd..dec4197 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project documented here. ## [Released] -## [1.0.0](https://www.nuget.org/packages/QueryDB/1.0.0) - 2025-02-17 +## [1.0.0](https://www.nuget.org/packages/QueryDB/1.0.0) - 2025-02-18 ### Added - QueryDB framework for simplified querying and executing transactions across multiple database systems. - Retrieve data from database.