diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index ae6235a..bef1750 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -33,15 +33,15 @@ jobs: with: domain: ${{github.repository_owner}} - - name: Install .NET 6 + - name: Install .NET 8 uses: actions/setup-dotnet@v1 with: - dotnet-version: "6.0.x" + dotnet-version: "8.0.x" - - name: Install .NET 7 + - name: Install .NET 9 uses: actions/setup-dotnet@v1 with: - dotnet-version: "7.0.x" + dotnet-version: "9.0.x" - name: Build run: ./build.sh --target build @@ -52,4 +52,4 @@ jobs: - name: Push result to Testspace server run: | testspace [macos]**/*.trx - if: always() + if: always() \ No newline at end of file diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index 990ff07..f82fb3e 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -33,15 +33,15 @@ jobs: with: domain: ${{github.repository_owner}} - - name: Install .NET 6 + - name: Install .NET 8 uses: actions/setup-dotnet@v1 with: - dotnet-version: "6.0.x" + dotnet-version: "8.0.x" - - name: Install .NET 8 + - name: Install .NET 9 uses: actions/setup-dotnet@v1 with: - dotnet-version: "8.0.x" + dotnet-version: "9.0.x" - name: Build run: ./build.sh --target build @@ -52,4 +52,4 @@ jobs: - name: Push result to Testspace server run: | testspace [linux]**/*.trx - if: always() + if: always() \ No newline at end of file diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 2a98b58..f41f8a9 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -27,15 +27,15 @@ jobs: with: domain: ${{github.repository_owner}} - - name: Install .NET 6 + - name: Install .NET 8 uses: actions/setup-dotnet@v1 with: - dotnet-version: "6.0.x" + dotnet-version: "8.0.x" - - name: Install .NET 8 + - name: Install .NET 9 uses: actions/setup-dotnet@v1 with: - dotnet-version: "8.0.x" + dotnet-version: "9.0.x" - name: Build run: .\build.ps1 --target build @@ -46,4 +46,4 @@ jobs: - name: Push result to Testspace server run: | testspace [windows]**/*.trx - if: always() + if: always() \ No newline at end of file diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml index ea59d13..17d60ba 100644 --- a/.github/workflows/publish-nuget.yml +++ b/.github/workflows/publish-nuget.yml @@ -37,15 +37,15 @@ jobs: - name: Install NuGet uses: NuGet/setup-nuget@v1.0.5 - - name: Install .NET 6 + - name: Install .NET 8 uses: actions/setup-dotnet@v1 with: - dotnet-version: "6.0.x" + dotnet-version: "8.0.x" - - name: Install .NET 8 + - name: Install .NET 9 uses: actions/setup-dotnet@v1 with: - dotnet-version: "8.0.x" + dotnet-version: "9.0.x" - name: Build & Test run: ./build.sh @@ -67,4 +67,4 @@ jobs: - name: NuGet Push if: ${{ github.event.inputs.package-source == 'nuget' }} - run: ./build.sh --target nuget-push --package-source ${{ github.event.inputs.package-source }} --package-id ${{ github.event.inputs.package-id }} --package-version ${{ github.event.inputs.package-version }} --package-secret ${{secrets.NUGET_API_KEY}} + run: ./build.sh --target nuget-push --package-source ${{ github.event.inputs.package-source }} --package-id ${{ github.event.inputs.package-id }} --package-version ${{ github.event.inputs.package-version }} --package-secret ${{secrets.NUGET_API_KEY}} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3953788..ed6d1c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # LocalStack .NET Client Change Log +### [v1.6.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.6.0) + +#### 1. General + +- **Framework Support Updates:** + - **.NET 9** support added. + - **Deprecated** support for **.NET 6**. + - Continued support for **.NET Standard 2.0** to maintain compatibility with older .NET versions. + +- **Functional Tests Enhancements:** + - **Removed** tests for legacy LocalStack versions and versions **v1.3.1** and **v2.3.2**. + - **Note:** LocalStack.NET no longer guarantees compatibility with v1 and v2 series. + - **Added** functional test support for LocalStack versions: + - **v3.7.1** + - **v4.3.0** + +- **Package Updates:** + - **AWSSDK.Core** minimum version set to **3.7.402**. + +- **Testing Compatibility:** + - Successfully tested against LocalStack versions: + - **v3.7.1** + - **v4.3.0** + +#### 3. Warnings + +- **Breaking Changes Postponed:** + - The planned breaking changes have been postponed to the next release. + - **Important:** Users should anticipate some breaking changes in the next release due to the removal of legacy support and configuration updates. + ### [v1.5.0](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v1.5.0) #### 1. New Features @@ -195,4 +225,4 @@ Thanks to [petertownsend](https://github.com/petertownsend) for his contribution ### [v0.8.0.163](https://github.com/localstack-dotnet/localstack-dotnet-client/releases/tag/v0.8.0.163) -- First release. +- First release. \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 0edea2d..532556c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -5,11 +5,11 @@ LocalStack.NET https://github.com/localstack-dotnet/localstack-dotnet-client localstack-dotnet-square.png - 1.5.0 - 1.3.0 + 1.6.0 + 1.4.0 true snupkg - 12.0 + 13.0 true latest true diff --git a/Directory.Packages.props b/Directory.Packages.props index 57f7581..99f4395 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,160 +1,160 @@ - + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers diff --git a/LICENSE b/LICENSE index 2357a75..f9478d1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 LocalStack.NET +Copyright (c) 2019-2025 LocalStack.NET Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index a5c265d..4bec638 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com ## Supported Platforms - [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) -- [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0) +- [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) - [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) - [.NET 4.6.2 and Above](https://dotnet.microsoft.com/download/dotnet-framework) @@ -46,7 +46,7 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com - **Adaptable Environment Transition:** Easily switch between LocalStack and actual AWS services with minimal configuration changes. -- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 8.0 and .NET Standard 2.0 to .NET Framework 4.6.2 and above. +- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 9.0 and .NET Standard 2.0 to .NET Framework 4.6.2 and above. - **Reduced Learning Curve:** Offers a familiar interface tailored for LocalStack, ideal for developers acquainted with the AWS SDK for .NET. @@ -189,4 +189,4 @@ Please refer to [`CHANGELOG.md`](CHANGELOG.md) to see the complete list of chang ## License -Licensed under MIT, see [LICENSE](LICENSE) for the full text. +Licensed under MIT, see [LICENSE](LICENSE) for the full text. \ No newline at end of file diff --git a/build/LocalStack.Build/BuildContext.cs b/build/LocalStack.Build/BuildContext.cs index f8aeeb9..4000e4b 100644 --- a/build/LocalStack.Build/BuildContext.cs +++ b/build/LocalStack.Build/BuildContext.cs @@ -1,4 +1,6 @@ -namespace LocalStack.Build; +#pragma warning disable CA1515 // Consider making public types internal + +namespace LocalStack.Build; public sealed class BuildContext : FrostingContext { diff --git a/build/LocalStack.Build/LocalStack.Build.csproj b/build/LocalStack.Build/LocalStack.Build.csproj index f28703f..0840af6 100644 --- a/build/LocalStack.Build/LocalStack.Build.csproj +++ b/build/LocalStack.Build/LocalStack.Build.csproj @@ -1,15 +1,15 @@ Exe - net8.0 + net9.0 $(MSBuildProjectDirectory) latest - $(NoWarn);CA1303;CA1707;CS8601;CS8618;MA0047;MA0048;CA1050;S3903;MA0006;CA1031;CA1062;MA0051;S112;CA2201;CA1307;MA0074;MA0023;MA0009;CA1307;CA1310 + $(NoWarn);CA1303;CA1707;CS8601;CS8618;MA0047;MA0048;CA1050;S3903;MA0006;CA1031;CA1062;MA0051;S112;CA2201;CA1307;MA0074;MA0023;MA0009;CA1307;CA1310;CA1515 - + \ No newline at end of file diff --git a/build/LocalStack.Build/Models/ProjMetadata.cs b/build/LocalStack.Build/Models/ProjMetadata.cs index 27a3dc9..38783f2 100644 --- a/build/LocalStack.Build/Models/ProjMetadata.cs +++ b/build/LocalStack.Build/Models/ProjMetadata.cs @@ -1,3 +1,5 @@ -namespace LocalStack.Build.Models; +#pragma warning disable CA1515 // Consider making public types internal + +namespace LocalStack.Build.Models; public record ProjMetadata(string DirectoryPath, string CsProjPath, IEnumerable TargetFrameworks, string AssemblyName); \ No newline at end of file diff --git a/build/LocalStack.Build/Program.cs b/build/LocalStack.Build/Program.cs index b0f0ea7..c8a5855 100644 --- a/build/LocalStack.Build/Program.cs +++ b/build/LocalStack.Build/Program.cs @@ -1,4 +1,6 @@ -return new CakeHost().UseContext().Run(args); +#pragma warning disable CA1515 // Consider making public types internal + +return new CakeHost().UseContext().Run(args); [TaskName("Default"), IsDependentOn(typeof(TestTask))] public class DefaultTask : FrostingTask diff --git a/global.json b/global.json index b1b7e8d..2bb272e 100644 --- a/global.json +++ b/global.json @@ -1,7 +1,7 @@ { "sdk": { - "version": "8.0.402", + "version": "9.0.200", "rollForward": "latestFeature", "allowPrerelease": false } -} +} \ No newline at end of file diff --git a/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj b/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj index 8981d75..32eaa4d 100644 --- a/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj +++ b/src/LocalStack.Client.Extensions/LocalStack.Client.Extensions.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net8.0;net9.0 LocalStack.Client.Extensions LocalStack.Client.Extensions $(PackageExtensionVersion) @@ -27,11 +27,11 @@ - - - - - + + + + + diff --git a/src/LocalStack.Client.Extensions/README.md b/src/LocalStack.Client.Extensions/README.md index 0db2a60..4bec638 100644 --- a/src/LocalStack.Client.Extensions/README.md +++ b/src/LocalStack.Client.Extensions/README.md @@ -35,10 +35,10 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com ## Supported Platforms -- [.NET 7](https://dotnet.microsoft.com/download/dotnet/7.0) -- [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0) +- [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) +- [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) - [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) -- [.NET 4.6.1 and Above](https://dotnet.microsoft.com/download/dotnet-framework) +- [.NET 4.6.2 and Above](https://dotnet.microsoft.com/download/dotnet-framework) ## Why LocalStack.NET Client? @@ -46,7 +46,7 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com - **Adaptable Environment Transition:** Easily switch between LocalStack and actual AWS services with minimal configuration changes. -- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 7.0 and .NET Standard 2.0 to .NET Framework 4.6.1 and above. +- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 9.0 and .NET Standard 2.0 to .NET Framework 4.6.2 and above. - **Reduced Learning Curve:** Offers a familiar interface tailored for LocalStack, ideal for developers acquainted with the AWS SDK for .NET. @@ -189,4 +189,4 @@ Please refer to [`CHANGELOG.md`](CHANGELOG.md) to see the complete list of chang ## License -Licensed under MIT, see [LICENSE](LICENSE) for the full text. +Licensed under MIT, see [LICENSE](LICENSE) for the full text. \ No newline at end of file diff --git a/src/LocalStack.Client/LocalStack.Client.csproj b/src/LocalStack.Client/LocalStack.Client.csproj index b0224dd..a64d8e3 100644 --- a/src/LocalStack.Client/LocalStack.Client.csproj +++ b/src/LocalStack.Client/LocalStack.Client.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net462;net6.0;net8.0 + netstandard2.0;net462;net8.0;net9.0 LocalStack.Client LocalStack.Client diff --git a/src/LocalStack.Client/README.md b/src/LocalStack.Client/README.md index 0db2a60..4bec638 100644 --- a/src/LocalStack.Client/README.md +++ b/src/LocalStack.Client/README.md @@ -35,10 +35,10 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com ## Supported Platforms -- [.NET 7](https://dotnet.microsoft.com/download/dotnet/7.0) -- [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0) +- [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) +- [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) - [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) -- [.NET 4.6.1 and Above](https://dotnet.microsoft.com/download/dotnet-framework) +- [.NET 4.6.2 and Above](https://dotnet.microsoft.com/download/dotnet-framework) ## Why LocalStack.NET Client? @@ -46,7 +46,7 @@ Localstack.NET is an easy-to-use .NET client for [LocalStack](https://github.com - **Adaptable Environment Transition:** Easily switch between LocalStack and actual AWS services with minimal configuration changes. -- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 7.0 and .NET Standard 2.0 to .NET Framework 4.6.1 and above. +- **Versatile .NET Compatibility:** Supports a broad spectrum of .NET versions, from .NET 9.0 and .NET Standard 2.0 to .NET Framework 4.6.2 and above. - **Reduced Learning Curve:** Offers a familiar interface tailored for LocalStack, ideal for developers acquainted with the AWS SDK for .NET. @@ -189,4 +189,4 @@ Please refer to [`CHANGELOG.md`](CHANGELOG.md) to see the complete list of chang ## License -Licensed under MIT, see [LICENSE](LICENSE) for the full text. +Licensed under MIT, see [LICENSE](LICENSE) for the full text. \ No newline at end of file diff --git a/tests/LocalStack.Client.Extensions.Tests/Extensions/ObjectExtensions.cs b/tests/LocalStack.Client.Extensions.Tests/Extensions/ObjectExtensions.cs index 02ec093..edb9db1 100644 --- a/tests/LocalStack.Client.Extensions.Tests/Extensions/ObjectExtensions.cs +++ b/tests/LocalStack.Client.Extensions.Tests/Extensions/ObjectExtensions.cs @@ -1,4 +1,6 @@ -namespace LocalStack.Client.Extensions.Tests.Extensions; +#pragma warning disable CA1515 // Because an application's API isn't typically referenced from outside the assembly, types can be made internal + +namespace LocalStack.Client.Extensions.Tests.Extensions; public static class ObjectExtensions { @@ -9,4 +11,4 @@ public static bool DeepEquals(this object obj1, object obj2) return string.Equals(obj1Ser, obj2Ser, StringComparison.Ordinal); } -} +} \ No newline at end of file diff --git a/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj b/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj index 2803281..c6a3b13 100644 --- a/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj +++ b/tests/LocalStack.Client.Extensions.Tests/LocalStack.Client.Extensions.Tests.csproj @@ -1,7 +1,7 @@  - net6.0;net8.0 + net8.0;net9.0 $(NoWarn);CA1707;MA0006 @@ -9,7 +9,7 @@ - + @@ -22,7 +22,7 @@ all runtime; build; native; contentfiles; analyzers - + diff --git a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackCollections.cs b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackCollections.cs index 326f00e..827d3f4 100644 --- a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackCollections.cs +++ b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackCollections.cs @@ -2,14 +2,8 @@ namespace LocalStack.Client.Functional.Tests.Fixtures; -[CollectionDefinition(nameof(LocalStackCollectionV131))] -public class LocalStackCollectionV131 : ICollectionFixture, ICollectionFixture; +[CollectionDefinition(nameof(LocalStackCollectionV37))] +public class LocalStackCollectionV37 : ICollectionFixture, ICollectionFixture; -[CollectionDefinition(nameof(LocalStackCollectionV23))] -public class LocalStackCollectionV23 : ICollectionFixture, ICollectionFixture; - -[CollectionDefinition(nameof(LocalStackCollectionV34))] -public class LocalStackCollectionV34 : ICollectionFixture, ICollectionFixture; - -[CollectionDefinition(nameof(LocalStackCollectionV38))] -public class LocalStackCollectionV38 : ICollectionFixture, ICollectionFixture; \ No newline at end of file +[CollectionDefinition(nameof(LocalStackCollectionV43))] +public class LocalStackCollectionV43 : ICollectionFixture, ICollectionFixture; \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixtures.cs b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixtures.cs index c0d94d6..6528ff9 100644 --- a/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixtures.cs +++ b/tests/LocalStack.Client.Functional.Tests/Fixtures/LocalStackFixtures.cs @@ -24,30 +24,16 @@ public async Task DisposeAsync() } } -public sealed class LocalStackFixtureV131 : LocalStackFixtureBase +public sealed class LocalStackFixtureV37 : LocalStackFixtureBase { - public LocalStackFixtureV131() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV13)) + public LocalStackFixtureV37() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV37)) { } } -public sealed class LocalStackFixtureV23 : LocalStackFixtureBase +public sealed class LocalStackFixtureV43 : LocalStackFixtureBase { - public LocalStackFixtureV23() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV23)) - { - } -} - -public sealed class LocalStackFixtureV34 : LocalStackFixtureBase -{ - public LocalStackFixtureV34() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV34)) - { - } -} - -public sealed class LocalStackFixtureV38 : LocalStackFixtureBase -{ - public LocalStackFixtureV38() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV38)) + public LocalStackFixtureV43() : base(TestContainers.LocalStackBuilder(TestConstants.LocalStackV43)) { } } diff --git a/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj b/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj index 0d30d2e..171edcb 100644 --- a/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj +++ b/tests/LocalStack.Client.Functional.Tests/LocalStack.Client.Functional.Tests.csproj @@ -1,9 +1,9 @@  - net6.0;net8.0 + net8.0;net9.0 latest - $(NoWarn);CA1707;MA0006;MA0004;CA1711;CA2007;MA0132;CA1848;CA2254;S4144 + $(NoWarn);CA1707;MA0006;MA0004;CA1711;CA2007;MA0132;CA1848;CA2254;S4144;CA1515 diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/BaseCloudFormationScenario.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/BaseCloudFormationScenario.cs index 8ac18ed..ecc3f22 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/BaseCloudFormationScenario.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/BaseCloudFormationScenario.cs @@ -50,14 +50,6 @@ public virtual async Task CloudFormationService_Should_Create_A_CloudFormation_S Assert.Equal(snsArn, topicAttResponse.Attributes["TopicArn"]); } - Type fixtureType = LocalStackFixture.GetType(); - - // AWSSDK.SQS 3.7.300 and above is incompatible with LocalStack v1 and v2 series - if (fixtureType == typeof(LocalStackFixtureV131) || fixtureType == typeof(LocalStackFixtureV23)) - { - return; - } - GetQueueAttributesResponse queueAttResponse = await AmazonSqs.GetQueueAttributesAsync(queueUrl, ["QueueArn"]); if (queueAttResponse.HttpStatusCode == HttpStatusCode.OK) diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/CloudFormationScenario.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/CloudFormationScenario.cs index 9ad6432..54d49e2 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/CloudFormationScenario.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/CloudFormation/CloudFormationScenario.cs @@ -2,35 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.CloudFormation; - -[Collection(nameof(LocalStackCollectionV131))] -public class CloudFormationScenarioV131 : BaseCloudFormationScenario -{ - public CloudFormationScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) - { - } -} - -[Collection(nameof(LocalStackCollectionV23))] -public sealed class CloudFormationScenarioV23 : BaseCloudFormationScenario -{ - public CloudFormationScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class CloudFormationScenarioV34 : BaseCloudFormationScenario +[Collection(nameof(LocalStackCollectionV37))] +public sealed class CloudFormationScenarioV37 : BaseCloudFormationScenario { - public CloudFormationScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) + public CloudFormationScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV38))] -public sealed class CloudFormationScenarioV38 : BaseCloudFormationScenario +[Collection(nameof(LocalStackCollectionV43))] +public sealed class CloudFormationScenarioV43 : BaseCloudFormationScenario { - public CloudFormationScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public CloudFormationScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/BaseDynamoDbScenario.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/BaseDynamoDbScenario.cs index a1e9350..a97e3b3 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/BaseDynamoDbScenario.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/BaseDynamoDbScenario.cs @@ -66,7 +66,7 @@ public virtual async Task DynamoDbService_Should_List_Records_In_A_DynamoDb_Tabl await CreateTestTableAsync(tableName); Table targetTable = DynamoDbContext.GetTargetTable(dynamoDbOperationConfig); - IList movieEntities = new Fixture().CreateMany(recordCount).ToList(); + List movieEntities = new Fixture().CreateMany(recordCount).ToList(); List documents = movieEntities.Select(entity => { string serialize = JsonSerializer.Serialize(entity); diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/DynamoDbScenario.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/DynamoDbScenario.cs index 2c8a0f4..d6ead44 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/DynamoDbScenario.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/DynamoDb/DynamoDbScenario.cs @@ -2,34 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.DynamoDb; -[Collection(nameof(LocalStackCollectionV131))] -public class DynamoDbScenarioV131 : BaseDynamoDbScenario +[Collection(nameof(LocalStackCollectionV37))] +public sealed class DynamoDbScenarioV37 : BaseDynamoDbScenario { - public DynamoDbScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) + public DynamoDbScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV23))] -public sealed class DynamoDbScenarioV23 : BaseDynamoDbScenario +[Collection(nameof(LocalStackCollectionV43))] +public sealed class DynamoDbScenarioV43 : BaseDynamoDbScenario { - public DynamoDbScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class DynamoDbScenarioV34 : BaseDynamoDbScenario -{ - public DynamoDbScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) - { - } -} - -[Collection(nameof(LocalStackCollectionV38))] -public sealed class DynamoDbScenarioV38 : BaseDynamoDbScenario -{ - public DynamoDbScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public DynamoDbScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/RealLife/SnsToSqsScenarios.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/RealLife/SnsToSqsScenarios.cs index 3fdde00..557ac75 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/RealLife/SnsToSqsScenarios.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/RealLife/SnsToSqsScenarios.cs @@ -2,50 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.RealLife; -[Collection(nameof(LocalStackCollectionV131))] -public sealed class SnsToSqsScenarioV131 : BaseRealLife +[Collection(nameof(LocalStackCollectionV37))] +public sealed class SnsToSqsScenarioV37 : BaseRealLife { - public SnsToSqsScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) - { - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task Should_Create_A_SNS_Topic_And_SQS_Queue_Then_Subscribe_To_The_Topic_Using_SQS_Then_Publish_A_Message_To_Topic_And_Read_It_From_The_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } -} - -[Collection(nameof(LocalStackCollectionV23))] -public sealed class SnsToSqsScenarioV23 : BaseRealLife -{ - public SnsToSqsScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task Should_Create_A_SNS_Topic_And_SQS_Queue_Then_Subscribe_To_The_Topic_Using_SQS_Then_Publish_A_Message_To_Topic_And_Read_It_From_The_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class SnsToSqsScenarioV34 : BaseRealLife -{ - public SnsToSqsScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) + public SnsToSqsScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV38))] -public sealed class SnsToSqsScenarioV38 : BaseRealLife +[Collection(nameof(LocalStackCollectionV43))] +public sealed class SnsToSqsScenarioV43 : BaseRealLife { - public SnsToSqsScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public SnsToSqsScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/S3/S3Scenarios.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/S3/S3Scenarios.cs index 6c81035..7f34f4c 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/S3/S3Scenarios.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/S3/S3Scenarios.cs @@ -2,34 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.S3; -[Collection(nameof(LocalStackCollectionV131))] -public sealed class S3ScenarioV131 : BaseS3Scenario +[Collection(nameof(LocalStackCollectionV37))] +public sealed class S3ScenarioV37 : BaseS3Scenario { - public S3ScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) + public S3ScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV23))] -public sealed class S3ScenarioV23 : BaseS3Scenario +[Collection(nameof(LocalStackCollectionV43))] +public sealed class S3ScenarioV43 : BaseS3Scenario { - public S3ScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class S3ScenarioV34 : BaseS3Scenario -{ - public S3ScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) - { - } -} - -[Collection(nameof(LocalStackCollectionV38))] -public sealed class S3ScenarioV38 : BaseS3Scenario -{ - public S3ScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public S3ScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/SNS/SnsScenarios.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/SNS/SnsScenarios.cs index cdbc009..45a3fdc 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/SNS/SnsScenarios.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/SNS/SnsScenarios.cs @@ -2,34 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.SNS; -[Collection(nameof(LocalStackCollectionV131))] -public sealed class SnsScenarioV131 : BaseSnsScenario +[Collection(nameof(LocalStackCollectionV37))] +public sealed class SnsScenarioV37 : BaseSnsScenario { - public SnsScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) + public SnsScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV23))] -public sealed class SnsScenarioV23 : BaseSnsScenario +[Collection(nameof(LocalStackCollectionV43))] +public sealed class SnsScenarioV43 : BaseSnsScenario { - public SnsScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class SnsScenarioV34 : BaseSnsScenario -{ - public SnsScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) - { - } -} - -[Collection(nameof(LocalStackCollectionV38))] -public sealed class SnsScenarioV38 : BaseSnsScenario -{ - public SnsScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public SnsScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/Scenarios/SQS/SqsScenarios.cs b/tests/LocalStack.Client.Functional.Tests/Scenarios/SQS/SqsScenarios.cs index 6ebbc85..717b644 100644 --- a/tests/LocalStack.Client.Functional.Tests/Scenarios/SQS/SqsScenarios.cs +++ b/tests/LocalStack.Client.Functional.Tests/Scenarios/SQS/SqsScenarios.cs @@ -2,98 +2,18 @@ namespace LocalStack.Client.Functional.Tests.Scenarios.SQS; -[Collection(nameof(LocalStackCollectionV131))] -public sealed class SqsScenarioV131 : BaseSqsScenario +[Collection(nameof(LocalStackCollectionV37))] +public sealed class SqsScenarioV37 : BaseSqsScenario { - public SqsScenarioV131(TestFixture testFixture, LocalStackFixtureV131 localStackFixtureV131) : base(testFixture, localStackFixtureV131) - { - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Create_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Delete_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Send_A_Message_To_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Receive_Messages_From_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } -} - -[Collection(nameof(LocalStackCollectionV23))] -public sealed class SqsScenarioV23 : BaseSqsScenario -{ - public SqsScenarioV23(TestFixture testFixture, LocalStackFixtureV23 localStackFixtureV23) : base(testFixture, localStackFixtureV23) - { - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Create_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Delete_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Send_A_Message_To_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } - - // Test disabled because of incompatibility between AWSSDK.SQS 3.7.300 and above and LocalStack v1 and v2 series - public override Task AmazonSqsService_Should_Receive_Messages_From_A_Queue_Async() - { - Assert.True(true); - - return Task.CompletedTask; - } -} - -[Collection(nameof(LocalStackCollectionV34))] -public sealed class SqsScenarioV34 : BaseSqsScenario -{ - public SqsScenarioV34(TestFixture testFixture, LocalStackFixtureV34 localStackFixtureV34) : base(testFixture, localStackFixtureV34) + public SqsScenarioV37(TestFixture testFixture, LocalStackFixtureV37 localStackFixtureV37) : base(testFixture, localStackFixtureV37) { } } -[Collection(nameof(LocalStackCollectionV38))] -public sealed class SqsScenarioV38 : BaseSqsScenario +[Collection(nameof(LocalStackCollectionV43))] +public sealed class SqsScenarioV43 : BaseSqsScenario { - public SqsScenarioV38(TestFixture testFixture, LocalStackFixtureV38 localStackFixtureV38) : base(testFixture, localStackFixtureV38) + public SqsScenarioV43(TestFixture testFixture, LocalStackFixtureV43 localStackFixtureV43) : base(testFixture, localStackFixtureV43) { } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/TestConstants.cs b/tests/LocalStack.Client.Functional.Tests/TestConstants.cs index 1296474..3fa982e 100644 --- a/tests/LocalStack.Client.Functional.Tests/TestConstants.cs +++ b/tests/LocalStack.Client.Functional.Tests/TestConstants.cs @@ -2,14 +2,10 @@ public static class TestConstants { - public const string LegacyLocalStackConfig = "appsettings.LocalStackLegacy.json"; public const string LocalStackConfig = "appsettings.LocalStack.json"; - public const string LocalStackHttpsConfig = "appsettings.LocalStack.Https.json"; - public const string LocalStackV13 = "1.3.1"; - public const string LocalStackV23 = "2.3.2"; - public const string LocalStackV34 = "3.4.0"; - public const string LocalStackV38 = "3.7.1"; + public const string LocalStackV37 = "3.7.1"; + public const string LocalStackV43 = "4.3.0"; public const string MovieTableMovieIdGsi = "MoiveTableMovie-Index"; } \ No newline at end of file diff --git a/tests/LocalStack.Client.Functional.Tests/TestContainers.cs b/tests/LocalStack.Client.Functional.Tests/TestContainers.cs index 827301b..9e9fc4f 100644 --- a/tests/LocalStack.Client.Functional.Tests/TestContainers.cs +++ b/tests/LocalStack.Client.Functional.Tests/TestContainers.cs @@ -11,7 +11,7 @@ public static LocalStackBuilder LocalStackBuilder(string version) .WithEnvironment("DOCKER_HOST", "unix:///var/run/docker.sock") .WithEnvironment("DEBUG", "1") .WithEnvironment("LS_LOG", "trace-internal") - .WithPortBinding(4566, true) + .WithPortBinding(4566, assignRandomHostPort: true) .WithCleanUp(true); } } \ No newline at end of file diff --git a/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs b/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs index e5e357d..0f645a7 100644 --- a/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs +++ b/tests/LocalStack.Client.Integration.Tests/AssertAmazonClient.cs @@ -1,6 +1,6 @@ namespace LocalStack.Client.Integration.Tests; -public static class AssertAmazonClient +internal static class AssertAmazonClient { public const string TestAwsRegion = "eu-central-1"; public const bool UseSsl = true; diff --git a/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj b/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj index 11c4543..a2c62b6 100644 --- a/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj +++ b/tests/LocalStack.Client.Integration.Tests/LocalStack.Client.Integration.Tests.csproj @@ -1,7 +1,7 @@  - net462;net6.0;net8.0 + net462;net8.0;net9.0 $(NoWarn);CA1707;MA0006;CA1510 diff --git a/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj b/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj index e5ca7dd..77b86ff 100644 --- a/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj +++ b/tests/LocalStack.Client.Tests/LocalStack.Client.Tests.csproj @@ -1,7 +1,7 @@  - net462;net6.0;net8.0 + net462;net8.0;net9.0 $(NoWarn);CA1707;MA0006 diff --git a/tests/LocalStack.Client.Tests/SessionTests/SessionLocalStackTests.cs b/tests/LocalStack.Client.Tests/SessionTests/SessionLocalStackTests.cs index 85a2819..682c0d1 100644 --- a/tests/LocalStack.Client.Tests/SessionTests/SessionLocalStackTests.cs +++ b/tests/LocalStack.Client.Tests/SessionTests/SessionLocalStackTests.cs @@ -1,4 +1,6 @@ -namespace LocalStack.Client.Tests.SessionTests; +#pragma warning disable CA2263 // Prefer generic overload when type is known + +namespace LocalStack.Client.Tests.SessionTests; public class SessionLocalStackTests { @@ -6,7 +8,7 @@ public class SessionLocalStackTests public void CreateClientByImplementation_Should_Throw_NotSupportedClientException_If_Given_ServiceId_Is_Not_Supported() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); mockSession.SessionOptionsMock.SetupDefault(); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata(It.Is(type => type == typeof(MockAmazonServiceClient)))).Returns(() => mockServiceMetadata); @@ -33,7 +35,7 @@ public void CreateClientByImplementation_Should_Throw_MisconfiguredClientExcepti public void CreateClientByImplementation_Should_Create_SessionAWSCredentials_With_AwsAccessKeyId_And_AwsAccessKey_And_AwsSessionToken() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -67,7 +69,7 @@ public void CreateClientByImplementation_Should_Create_SessionAWSCredentials_Wit public void CreateClientByImplementation_Should_Create_ClientConfig_With_UseHttp_Set_Bey_ConfigOptions_UseSsl(bool useSsl) { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -94,7 +96,7 @@ public void CreateClientByImplementation_Should_Create_ClientConfig_With_UseHttp public void CreateClientByImplementation_Should_Create_ClientConfig_With_UseHttp_And_ProxyHost_And_ProxyPort_By_ServiceEndpoint_Configuration() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); var configOptions = new ConfigOptions(); @@ -130,7 +132,7 @@ public void CreateClientByImplementation_Should_Set_RegionEndpoint_By_RegionName { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -157,7 +159,7 @@ public void CreateClientByImplementation_Should_Set_ServiceUrl_By_ServiceEndpoin { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -183,7 +185,7 @@ public void CreateClientByImplementation_Should_Set_ServiceUrl_By_ServiceEndpoin public void CreateClientByImplementation_Should_Pass_The_ClientConfig_To_SetForcePathStyle() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -207,7 +209,7 @@ public void CreateClientByImplementation_Should_Pass_The_ClientConfig_To_SetForc public void CreateClientByImplementation_Should_Create_AmazonServiceClient_By_Given_Generic_Type_And_Configure_ServiceUrl_Or_RegionEndpoint_By_Given_UseServiceUrl_Parameter(bool useServiceUrl) { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -255,7 +257,7 @@ public void CreateClientByInterface_Should_Throw_AmazonClientException_If_Given_ public void CreateClientByInterface_Should_Throw_NotSupportedClientException_If_Given_ServiceId_Is_Not_Supported() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); mockSession.SessionOptionsMock.SetupDefault(); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata(It.Is(type => type == typeof(MockAmazonServiceClient)))).Returns(() => mockServiceMetadata); @@ -284,7 +286,7 @@ public void CreateClientByInterface_Should_Throw_MisconfiguredClientException_If public void CreateClientByInterface_Should_Create_ClientConfig_With_UseHttp_Set_Bey_ConfigOptions_UseSsl(bool useSsl) { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -311,7 +313,7 @@ public void CreateClientByInterface_Should_Create_ClientConfig_With_UseHttp_Set_ public void CreateClientByInterface_Should_Create_SessionAWSCredentials_With_AwsAccessKeyId_And_AwsAccessKey_And_AwsSessionToken() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -343,7 +345,7 @@ public void CreateClientByInterface_Should_Create_SessionAWSCredentials_With_Aws public void CreateClientByInterface_Should_Create_ClientConfig_With_UseHttp_And_ProxyHost_And_ProxyPort_By_ServiceEndpoint_Configuration() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); var configOptions = new ConfigOptions(); @@ -381,7 +383,7 @@ public void CreateClientByInterface_Should_Set_RegionEndpoint_By_RegionName_Prop { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -409,7 +411,7 @@ public void CreateClientByInterface_Should_Set_ServiceUrl_By_ServiceEndpoint_Con { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -435,7 +437,7 @@ public void CreateClientByInterface_Should_Set_ServiceUrl_By_ServiceEndpoint_Con public void CreateClientByInterface_Should_Pass_The_ClientConfig_To_SetForcePathStyle() { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); @@ -460,7 +462,7 @@ public void CreateClientByInterface_Should_Pass_The_ClientConfig_To_SetForcePath public void CreateClientByInterface_Should_Create_AmazonServiceClient_By_Given_Generic_Type_And_Configure_ServiceUrl_Or_RegionEndpoint_By_Given_UseServiceUrl_Parameter(bool useServiceUrl) { var mockSession = MockSession.Create(); - IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); + var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); var configOptions = new ConfigOptions(); diff --git a/tests/common/LocalStack.Tests.Common/LocalStack.Tests.Common.csproj b/tests/common/LocalStack.Tests.Common/LocalStack.Tests.Common.csproj index 502bd5c..27948d3 100644 --- a/tests/common/LocalStack.Tests.Common/LocalStack.Tests.Common.csproj +++ b/tests/common/LocalStack.Tests.Common/LocalStack.Tests.Common.csproj @@ -1,7 +1,7 @@ - net462;net6.0;net8.0 + net462;net8.0;net9.0 $(NoWarn);CA1707;MA0006;CA1510 diff --git a/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj b/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj index 9836877..2d6360a 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox.DependencyInjection/LocalStack.Client.Sandbox.DependencyInjection.csproj @@ -1,44 +1,44 @@  - - Exe - net6.0;net8.0 - $(NoWarn);CS0246;S125;CA1305;CA1031;CA1303;CA1848;MA0004;CA2007 - + + Exe + net8.0;net9.0 + $(NoWarn);CS0246;S125;CA1305;CA1031;CA1303;CA1848;MA0004;CA2007 + - - - - + + + + - - - PreserveNewest - appsettings.json - - - PreserveNewest - - + + + PreserveNewest + appsettings.json + + + PreserveNewest + + - - - - - - - - - + + + + + + + + + - - - + + + - - - Always - - + + + Always + + \ No newline at end of file diff --git a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj index 1ad6873..a6a6439 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/LocalStack.Client.Sandbox.WithGenericHost.csproj @@ -2,7 +2,7 @@ Exe - net6.0;net8.0 + net8.0;net9.0 latest $(NoWarn);CS0246;S125;CA1305;CA1031;CA1303;CA1848;MA0004;CA2007 @@ -19,11 +19,11 @@ - - - - - + + + + + diff --git a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/SampleS3Service.cs b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/SampleS3Service.cs index 7e0c9e2..e77f03f 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/SampleS3Service.cs +++ b/tests/sandboxes/LocalStack.Client.Sandbox.WithGenericHost/SampleS3Service.cs @@ -1,6 +1,8 @@ -namespace LocalStack.Client.Sandbox.WithGenericHost; +#pragma warning disable CA1812 // Avoid uninstantiated internal classes -public class SampleS3Service : IHostedService +namespace LocalStack.Client.Sandbox.WithGenericHost; + +internal sealed class SampleS3Service : IHostedService { private const string BucketName = "localstack-sandbox-with-host"; private const string FilePath = "SampleData.txt"; @@ -64,4 +66,4 @@ private static async Task FindBucketLocationAsync(IAmazonS3 client, stri return bucketLocation; } -} +} \ No newline at end of file diff --git a/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj b/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj index 6f2c9d0..129fa3a 100644 --- a/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj +++ b/tests/sandboxes/LocalStack.Client.Sandbox/LocalStack.Client.Sandbox.csproj @@ -2,7 +2,7 @@ Exe - net462;net6.0;net8.0 + net462;net8.0;net9.0 $(NoWarn);CS0246;S125;CA1305;CA1031;CA1303;CA1848;MA0004;CA2007 diff --git a/tests/sandboxes/LocalStack.Container/LocalStack.Container.csproj b/tests/sandboxes/LocalStack.Container/LocalStack.Container.csproj index 14cb45f..8e92cd2 100644 --- a/tests/sandboxes/LocalStack.Container/LocalStack.Container.csproj +++ b/tests/sandboxes/LocalStack.Container/LocalStack.Container.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 latest $(NoWarn);CS0246;S125;CA1305;CA1031;CA1303;CA1848;MA0004;CA2007