diff --git a/src/grate.core/grate.core.csproj b/src/grate.core/grate.core.csproj index 5d474ff0..e3a04f86 100644 --- a/src/grate.core/grate.core.csproj +++ b/src/grate.core/grate.core.csproj @@ -5,7 +5,7 @@ enable grate build$([System.DateTime]::UtcNow.ToString("O")) - + false diff --git a/src/grate.mariadb/grate.mariadb.csproj b/src/grate.mariadb/grate.mariadb.csproj index 7120c6bf..5ea931fc 100644 --- a/src/grate.mariadb/grate.mariadb.csproj +++ b/src/grate.mariadb/grate.mariadb.csproj @@ -3,6 +3,7 @@ $(NetTargetFrameworks) enable + false diff --git a/src/grate.oracle/grate.oracle.csproj b/src/grate.oracle/grate.oracle.csproj index ec0e3992..e1a9f899 100644 --- a/src/grate.oracle/grate.oracle.csproj +++ b/src/grate.oracle/grate.oracle.csproj @@ -3,6 +3,7 @@ $(NetTargetFrameworks) enable + false diff --git a/src/grate.postgresql/grate.postgresql.csproj b/src/grate.postgresql/grate.postgresql.csproj index 01a463c3..30e63ecc 100644 --- a/src/grate.postgresql/grate.postgresql.csproj +++ b/src/grate.postgresql/grate.postgresql.csproj @@ -3,6 +3,7 @@ $(NetTargetFrameworks) enable + false diff --git a/src/grate.sqlite/grate.sqlite.csproj b/src/grate.sqlite/grate.sqlite.csproj index 1c392d20..d2faea6f 100644 --- a/src/grate.sqlite/grate.sqlite.csproj +++ b/src/grate.sqlite/grate.sqlite.csproj @@ -3,6 +3,7 @@ $(NetTargetFrameworks) enable + false diff --git a/src/grate.sqlserver/grate.sqlserver.csproj b/src/grate.sqlserver/grate.sqlserver.csproj index 5f39ec3b..94e02a1b 100644 --- a/src/grate.sqlserver/grate.sqlserver.csproj +++ b/src/grate.sqlserver/grate.sqlserver.csproj @@ -3,6 +3,7 @@ $(NetTargetFrameworks) enable + false diff --git a/unittests/Basic_tests/Basic_tests.csproj b/unittests/Basic_tests/Basic_tests.csproj index 65370bca..bbd76904 100644 --- a/unittests/Basic_tests/Basic_tests.csproj +++ b/unittests/Basic_tests/Basic_tests.csproj @@ -6,6 +6,7 @@ enable false + false true Basic_tests diff --git a/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj b/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj index 9347f583..fc1fbc8a 100644 --- a/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj +++ b/unittests/CommandLine/CommandLine.Common/CommandLine.Common.csproj @@ -5,6 +5,7 @@ enable enable + false false false diff --git a/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj b/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj index 92070270..a162a899 100644 --- a/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj +++ b/unittests/CommandLine/CommandLine.MariaDB/CommandLine.MariaDB.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj b/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj index b4e5ecb9..915d93e8 100644 --- a/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj +++ b/unittests/CommandLine/CommandLine.Oracle/CommandLine.Oracle.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj b/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj index e524c1a5..841b2cf0 100644 --- a/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj +++ b/unittests/CommandLine/CommandLine.PostgreSQL/CommandLine.PostgreSQL.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj b/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj index 5ac48ef8..773c17a8 100644 --- a/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj +++ b/unittests/CommandLine/CommandLine.SqlServer/CommandLine.SqlServer.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj b/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj index bb81a62f..d4a2db5e 100644 --- a/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj +++ b/unittests/CommandLine/CommandLine.Sqlite/CommandLine.Sqlite.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/Docker/Docker.Common/Docker.Common.csproj b/unittests/Docker/Docker.Common/Docker.Common.csproj index ceb8fca8..b83dab4b 100644 --- a/unittests/Docker/Docker.Common/Docker.Common.csproj +++ b/unittests/Docker/Docker.Common/Docker.Common.csproj @@ -5,6 +5,7 @@ enable enable + false false false diff --git a/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj b/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj index daf980d5..fd3f5944 100644 --- a/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj +++ b/unittests/Docker/Docker.MariaDB/Docker.MariaDB.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj b/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj index e19627be..f2416bf4 100644 --- a/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj +++ b/unittests/Docker/Docker.Oracle/Docker.Oracle.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj b/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj index fa2a1710..393b7474 100644 --- a/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj +++ b/unittests/Docker/Docker.PostgreSQL/Docker.PostgreSQL.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj b/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj index daa4f49b..a06d9df3 100644 --- a/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj +++ b/unittests/Docker/Docker.SqlServer/Docker.SqlServer.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj b/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj index ceb02f9d..4ec396a7 100644 --- a/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj +++ b/unittests/Docker/Docker.Sqlite/Docker.Sqlite.csproj @@ -5,6 +5,7 @@ enable enable + false false true diff --git a/unittests/MariaDB/MariaDB.csproj b/unittests/MariaDB/MariaDB.csproj index e26a694f..b7a60bfa 100644 --- a/unittests/MariaDB/MariaDB.csproj +++ b/unittests/MariaDB/MariaDB.csproj @@ -1,22 +1,24 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false - - - - - - - - + + + + + + + + diff --git a/unittests/Oracle/Oracle.csproj b/unittests/Oracle/Oracle.csproj index 5757d832..e5b720a1 100644 --- a/unittests/Oracle/Oracle.csproj +++ b/unittests/Oracle/Oracle.csproj @@ -1,11 +1,13 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false diff --git a/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs b/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs index 9e8eeacc..4ac9084a 100644 --- a/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs +++ b/unittests/Oracle/TestInfrastructure/OracleGrateTestContext.cs @@ -1,4 +1,5 @@ using System.Data; +using System.Diagnostics.CodeAnalysis; using Docker.DotNet.Models; using grate.Infrastructure; using grate.Migration; diff --git a/unittests/PostgreSQL/PostgreSQL.csproj b/unittests/PostgreSQL/PostgreSQL.csproj index 24604fba..f1c9528e 100644 --- a/unittests/PostgreSQL/PostgreSQL.csproj +++ b/unittests/PostgreSQL/PostgreSQL.csproj @@ -1,11 +1,13 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false diff --git a/unittests/SqlServer/SqlServer.csproj b/unittests/SqlServer/SqlServer.csproj index 33f5ccc0..c5c043be 100644 --- a/unittests/SqlServer/SqlServer.csproj +++ b/unittests/SqlServer/SqlServer.csproj @@ -1,14 +1,16 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false - + @@ -17,7 +19,7 @@ - + diff --git a/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs b/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs index 732c5057..49893c2e 100644 --- a/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs +++ b/unittests/SqlServer/TestInfrastructure/SqlServerGrateTestContext.cs @@ -1,4 +1,5 @@ using System.Data; +using System.Diagnostics.CodeAnalysis; using grate.Infrastructure; using grate.Migration; using grate.SqlServer.Infrastructure; diff --git a/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj b/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj index 33f5ccc0..fe3d7495 100644 --- a/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj +++ b/unittests/SqlServerCaseSensitive/SqlServerCaseSensitive.csproj @@ -1,11 +1,13 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false diff --git a/unittests/Sqlite/Sqlite.csproj b/unittests/Sqlite/Sqlite.csproj index fe1ec155..f4daa195 100644 --- a/unittests/Sqlite/Sqlite.csproj +++ b/unittests/Sqlite/Sqlite.csproj @@ -1,11 +1,13 @@ - net8.0 - enable - enable + net8.0 + enable + enable - false + true + false + false diff --git a/unittests/TestCommon/Startup.cs b/unittests/TestCommon/Startup.cs index 77de9c7f..c7c59646 100644 --- a/unittests/TestCommon/Startup.cs +++ b/unittests/TestCommon/Startup.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using DotNet.Testcontainers.Builders; using grate.Configuration; using Microsoft.Extensions.Configuration; @@ -38,8 +39,13 @@ public void ConfigureServices(IServiceCollection services, HostBuilderContext co RegisterTestDatabase(services, context.Configuration); } + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected abstract Type TestContainerDatabaseType { get; } + + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected abstract Type ExternalTestDatabaseType { get; } + + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected abstract Type TestContextType { get; } // ReSharper disable once UnassignedGetOnlyAutoProperty diff --git a/unittests/TestCommon/Startup_T.cs b/unittests/TestCommon/Startup_T.cs index dc3aac2e..affd8331 100644 --- a/unittests/TestCommon/Startup_T.cs +++ b/unittests/TestCommon/Startup_T.cs @@ -1,16 +1,22 @@ +using System.Diagnostics.CodeAnalysis; using TestCommon.TestInfrastructure; namespace TestCommon; public abstract class Startup< - TTestContainerDatabase, - TExternalDatabase, - TGrateTestContext>: Startup + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TTestContainerDatabase, + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TExternalDatabase, + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TGrateTestContext>: Startup where TTestContainerDatabase : ITestDatabase where TExternalDatabase : ITestDatabase where TGrateTestContext : IGrateTestContext { + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected override Type TestContainerDatabaseType => typeof(TTestContainerDatabase); + + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected override Type ExternalTestDatabaseType => typeof(TExternalDatabase); + + [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] protected override Type TestContextType => typeof(TGrateTestContext); } diff --git a/unittests/TestCommon/TestCommon.csproj b/unittests/TestCommon/TestCommon.csproj index 4b481bbd..9ef4c946 100644 --- a/unittests/TestCommon/TestCommon.csproj +++ b/unittests/TestCommon/TestCommon.csproj @@ -5,7 +5,9 @@ enable enable false + false false + IL2072;IL2075;IL2026 diff --git a/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs b/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs index dceee4d6..472ec186 100644 --- a/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs +++ b/unittests/TestCommon/TestInfrastructure/GrateTestContext.cs @@ -1,4 +1,5 @@ using System.Data; +using System.Diagnostics.CodeAnalysis; using Dapper; using grate.Infrastructure; using grate.Migration; @@ -41,7 +42,9 @@ public async Task DropDatabase(string databaseName) public abstract ISyntax Syntax { get; } public abstract Type DbExceptionType { get; } + public abstract Type DatabaseType { get; } + public abstract bool SupportsTransaction { get; } public abstract SqlStatements Sql { get; } public abstract string ExpectedVersionPrefix { get; } diff --git a/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs b/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs index 36e1fe0e..4edc5d9d 100644 --- a/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs +++ b/unittests/TestCommon/TestInfrastructure/IGrateTestContext.cs @@ -1,4 +1,5 @@ using System.Data; +using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using grate.Configuration; using grate.Infrastructure;