diff --git a/.gitignore b/.gitignore index 303df77..c6412f1 100644 --- a/.gitignore +++ b/.gitignore @@ -397,3 +397,7 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml .idea + +# agents +.claude/ +CLAUDE.md diff --git a/AspNetCore.DataProtection.CustomStorage.sln b/AspNetCore.DataProtection.CustomStorage.sln deleted file mode 100644 index 6319330..0000000 --- a/AspNetCore.DataProtection.CustomStorage.sln +++ /dev/null @@ -1,75 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.6.33712.159 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8658EF6B-C5AE-49AC-A7E4-7185005C95D9}" - ProjectSection(SolutionItems) = preProject - src\Directory.Build.props = src\Directory.Build.props - src\Directory.Build.targets = src\Directory.Build.targets - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{54236874-4D1E-4E0E-9333-892919EC293F}" - ProjectSection(SolutionItems) = preProject - LICENSE = LICENSE - NuGet.Config = NuGet.Config - README.md = README.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{8E67D983-E2B0-4DEF-9EAC-FB87D2E99D1A}" - ProjectSection(SolutionItems) = preProject - tests\Directory.Build.props = tests\Directory.Build.props - tests\Directory.Build.targets = tests\Directory.Build.targets - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.DataProtection.CustomStorage.Tests", "tests\AspNetCore.DataProtection.CustomStorage.Tests\AspNetCore.DataProtection.CustomStorage.Tests.csproj", "{AC39F953-2296-40CC-A2B1-2F604BD86374}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.DataProtection.CustomStorage", "src\AspNetCore.DataProtection.CustomStorage\AspNetCore.DataProtection.CustomStorage.csproj", "{DFE235EF-3772-41AA-9778-9F64412EF313}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.DataProtection.CustomStorage.Dapper", "src\AspNetCore.DataProtection.CustomStorage.Dapper\AspNetCore.DataProtection.CustomStorage.Dapper.csproj", "{E3ACD59F-6850-4F8E-A620-6B82F7E59E0B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer", "src\AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer\AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.csproj", "{1F61C9EF-2996-4DEA-8FDD-BE644EAC2119}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL", "src\AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL\AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj", "{A9E16154-6CA2-44E5-8661-E5663A52F963}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AC39F953-2296-40CC-A2B1-2F604BD86374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AC39F953-2296-40CC-A2B1-2F604BD86374}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AC39F953-2296-40CC-A2B1-2F604BD86374}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AC39F953-2296-40CC-A2B1-2F604BD86374}.Release|Any CPU.Build.0 = Release|Any CPU - {DFE235EF-3772-41AA-9778-9F64412EF313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFE235EF-3772-41AA-9778-9F64412EF313}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFE235EF-3772-41AA-9778-9F64412EF313}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFE235EF-3772-41AA-9778-9F64412EF313}.Release|Any CPU.Build.0 = Release|Any CPU - {E3ACD59F-6850-4F8E-A620-6B82F7E59E0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E3ACD59F-6850-4F8E-A620-6B82F7E59E0B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E3ACD59F-6850-4F8E-A620-6B82F7E59E0B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E3ACD59F-6850-4F8E-A620-6B82F7E59E0B}.Release|Any CPU.Build.0 = Release|Any CPU - {1F61C9EF-2996-4DEA-8FDD-BE644EAC2119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F61C9EF-2996-4DEA-8FDD-BE644EAC2119}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F61C9EF-2996-4DEA-8FDD-BE644EAC2119}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F61C9EF-2996-4DEA-8FDD-BE644EAC2119}.Release|Any CPU.Build.0 = Release|Any CPU - {A9E16154-6CA2-44E5-8661-E5663A52F963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9E16154-6CA2-44E5-8661-E5663A52F963}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9E16154-6CA2-44E5-8661-E5663A52F963}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9E16154-6CA2-44E5-8661-E5663A52F963}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {AC39F953-2296-40CC-A2B1-2F604BD86374} = {8E67D983-E2B0-4DEF-9EAC-FB87D2E99D1A} - {DFE235EF-3772-41AA-9778-9F64412EF313} = {8658EF6B-C5AE-49AC-A7E4-7185005C95D9} - {E3ACD59F-6850-4F8E-A620-6B82F7E59E0B} = {8658EF6B-C5AE-49AC-A7E4-7185005C95D9} - {1F61C9EF-2996-4DEA-8FDD-BE644EAC2119} = {8658EF6B-C5AE-49AC-A7E4-7185005C95D9} - {A9E16154-6CA2-44E5-8661-E5663A52F963} = {8658EF6B-C5AE-49AC-A7E4-7185005C95D9} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E3E547D3-0100-4B9B-A3F5-E99222944FFC} - EndGlobalSection -EndGlobal diff --git a/AspNetCore.DataProtection.CustomStorage.slnx b/AspNetCore.DataProtection.CustomStorage.slnx new file mode 100644 index 0000000..ebd5732 --- /dev/null +++ b/AspNetCore.DataProtection.CustomStorage.slnx @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj b/src/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj index 965a1e6..6747c9a 100644 --- a/src/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj +++ b/src/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj @@ -5,7 +5,7 @@ Support for storing AspNetCore data protection keys using Dapper in PostgreSQL. - + diff --git a/src/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.csproj b/src/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.csproj index 6478b04..b5f5a14 100644 --- a/src/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.csproj +++ b/src/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.csproj @@ -5,7 +5,7 @@ Support for storing AspNetCore data protection keys using Dapper in SQLServer. - + diff --git a/src/AspNetCore.DataProtection.CustomStorage.Dapper/AspNetCore.DataProtection.CustomStorage.Dapper.csproj b/src/AspNetCore.DataProtection.CustomStorage.Dapper/AspNetCore.DataProtection.CustomStorage.Dapper.csproj index f9e97d2..85b8f34 100644 --- a/src/AspNetCore.DataProtection.CustomStorage.Dapper/AspNetCore.DataProtection.CustomStorage.Dapper.csproj +++ b/src/AspNetCore.DataProtection.CustomStorage.Dapper/AspNetCore.DataProtection.CustomStorage.Dapper.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/AspNetCore.DataProtection.CustomStorage/AspNetCore.DataProtection.CustomStorage.csproj b/src/AspNetCore.DataProtection.CustomStorage/AspNetCore.DataProtection.CustomStorage.csproj index 64e6450..42e20ba 100644 --- a/src/AspNetCore.DataProtection.CustomStorage/AspNetCore.DataProtection.CustomStorage.csproj +++ b/src/AspNetCore.DataProtection.CustomStorage/AspNetCore.DataProtection.CustomStorage.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 1fe9aba..63d32ac 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,14 +1,14 @@ - 1.0 - 1.0 - 1.0 - 1.0 + 1.1 + 1.1 + 1.1 + 1.1 0.1 - net8.0 + net10.0 latest disable true @@ -41,6 +41,7 @@ + diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj b/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj deleted file mode 100644 index 017c231..0000000 --- a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/Class1.cs b/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/Class1.cs deleted file mode 100644 index af2abfd..0000000 --- a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace AspNetCore.DataProtection.CustomStorage.Dapper.PostgreSQL; - -public class Class1 -{ - -} diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests.csproj b/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests.csproj deleted file mode 100644 index 09aa3fa..0000000 --- a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests.csproj +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/Class1.cs b/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/Class1.cs deleted file mode 100644 index b7f31ad..0000000 --- a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace AspNetCore.DataProtection.CustomStorage.Dapper.SQLServer.Tests; - -public class Class1 -{ - -} diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests.csproj b/tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests.csproj deleted file mode 100644 index fb9238e..0000000 --- a/tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests/AspNetCore.DataProtection.CustomStorage.Dapper.Tests.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Tests/AspNetCore.DataProtection.CustomStorage.Tests.csproj b/tests/AspNetCore.DataProtection.CustomStorage.Tests/AspNetCore.DataProtection.CustomStorage.Tests.csproj index b5f49f6..38fff92 100644 --- a/tests/AspNetCore.DataProtection.CustomStorage.Tests/AspNetCore.DataProtection.CustomStorage.Tests.csproj +++ b/tests/AspNetCore.DataProtection.CustomStorage.Tests/AspNetCore.DataProtection.CustomStorage.Tests.csproj @@ -11,13 +11,17 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - - - - - + + + diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Tests/PostgreSQL/PostgreSqlContainerFixture.cs b/tests/AspNetCore.DataProtection.CustomStorage.Tests/PostgreSQL/PostgreSqlContainerFixture.cs index a609696..7a43670 100644 --- a/tests/AspNetCore.DataProtection.CustomStorage.Tests/PostgreSQL/PostgreSqlContainerFixture.cs +++ b/tests/AspNetCore.DataProtection.CustomStorage.Tests/PostgreSQL/PostgreSqlContainerFixture.cs @@ -14,8 +14,7 @@ namespace AspNetCore.DataProtection.CustomStorage.Tests.PostgreSQL; public class PostgreSqlContainerFixture : IAsyncLifetime { - private readonly PostgreSqlContainer _dbContainer = new PostgreSqlBuilder() - .WithImage("postgres:16.4") + private readonly PostgreSqlContainer _dbContainer = new PostgreSqlBuilder("postgres:16.4") .WithWaitStrategy(Wait.ForUnixContainer()) .Build(); @@ -34,7 +33,7 @@ public PostgreSqlContainerFixture() }); } - public async Task InitializeAsync() + public async ValueTask InitializeAsync() { await _dbContainer.StartAsync(); @@ -75,7 +74,7 @@ public async Task ResetDatabaseAsync() await _respawner.ResetAsync(dbConnection); } - public async Task DisposeAsync() + public async ValueTask DisposeAsync() { await NpgsqlDataSource.DisposeAsync(); await _dbContainer.StopAsync(); diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Tests/SQLServer/SqlServerContainerFixture.cs b/tests/AspNetCore.DataProtection.CustomStorage.Tests/SQLServer/SqlServerContainerFixture.cs index 927510d..58e4455 100644 --- a/tests/AspNetCore.DataProtection.CustomStorage.Tests/SQLServer/SqlServerContainerFixture.cs +++ b/tests/AspNetCore.DataProtection.CustomStorage.Tests/SQLServer/SqlServerContainerFixture.cs @@ -14,8 +14,7 @@ namespace AspNetCore.DataProtection.CustomStorage.Tests.SQLServer; public class SqlServerContainerFixture : IAsyncLifetime { - private readonly MsSqlContainer _dbContainer = new MsSqlBuilder() - .WithImage("mcr.microsoft.com/mssql/server:2022-latest") + private readonly MsSqlContainer _dbContainer = new MsSqlBuilder("mcr.microsoft.com/mssql/server:2022-latest") .WithPassword(Guid.NewGuid().ToString()) .WithExposedPort(1433).WithPortBinding(1433, true) .Build(); @@ -35,7 +34,7 @@ public SqlServerContainerFixture() }); } - public async Task InitializeAsync() + public async ValueTask InitializeAsync() { await _dbContainer.StartAsync(); @@ -46,7 +45,10 @@ public async Task InitializeAsync() InitialCatalog = initialCatalog, }; - SqlConnectionFactory = new SqlConnectionFactory(connectionStringBuilder.ConnectionString); + SqlConnectionFactory = new SqlConnectionFactory(connectionStringBuilder.ConnectionString + //quick hack for just my configuration (docker on wsl2) + .Replace("localhost", "127.0.0.1") + ); SeedDatabase(); await using var dbConnection = SqlConnectionFactory.CreateConnection(); @@ -73,7 +75,7 @@ public async Task ResetDatabaseAsync() await _respawner.ResetAsync(dbConnection); } - public async Task DisposeAsync() + public async ValueTask DisposeAsync() { await _dbContainer.StopAsync(); await _dbContainer.DisposeAsync(); diff --git a/tests/AspNetCore.DataProtection.CustomStorage.Tests/xunit.runner.json b/tests/AspNetCore.DataProtection.CustomStorage.Tests/xunit.runner.json new file mode 100644 index 0000000..f78bc2f --- /dev/null +++ b/tests/AspNetCore.DataProtection.CustomStorage.Tests/xunit.runner.json @@ -0,0 +1,3 @@ +{ + "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json" +} \ No newline at end of file diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index 8948579..d1a252f 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -1,6 +1,15 @@ - net8.0; + Exe + true + true + true + + + + + + net10.0; latest disable enable @@ -9,12 +18,12 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive