From e887e25c973620c1cda9b4a3ef3b003d5e682f73 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Thu, 11 Dec 2025 00:38:30 +0000 Subject: [PATCH 01/15] Bumping to the current 13.1 preview for initial testing work --- .../hosting-integration-creator.agent.md | 61 ++++++++++--------- ...New Aspire Hosting integration.chatmode.md | 2 +- Directory.Build.props | 5 +- Directory.Packages.props | 4 +- ...kit.Aspire.Hosting.ActiveMQ.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.Adminer.AppHost.csproj | 2 +- ...yToolkit.Aspire.Hosting.Bun.AppHost.csproj | 2 +- ...t.Aspire.Hosting.Azure.Dapr.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Dapr.AppHost.csproj | 2 +- ...osting.Azure.DataApiBuilder.AppHost.csproj | 2 +- ...olkit.Aspire.Hosting.DbGate.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Deno.AppHost.csproj | 2 +- ...oolkit.Aspire.Hosting.Flagd.AppHost.csproj | 2 +- ...spire.Hosting.GoFeatureFlag.AppHost.csproj | 2 +- ...olkit.Aspire.Hosting.Golang.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Java.AppHost.csproj | 2 +- ...sting.JavaScript.Extensions.AppHost.csproj | 2 +- ...tyToolkit.Aspire.Hosting.k6.AppHost.csproj | 2 +- ...Hosting.Keycloak.Extensions.AppHost.csproj | 4 +- ...it.Aspire.Hosting.KurrentDB.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.LavinMQ.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.MailPit.AppHost.csproj | 2 +- ...osting.MassTransit.RabbitMQ.AppHost.csproj | 2 +- ...Aspire.Hosting.McpInspector.AppHost.csproj | 2 +- ....Aspire.Hosting.Meilisearch.AppHost.csproj | 2 +- ...oolkit.Aspire.Hosting.Minio.AppHost.csproj | 2 +- ....Hosting.MongoDB.Extensions.AppHost.csproj | 2 +- ...re.Hosting.MySql.Extensions.AppHost.csproj | 2 +- ...oolkit.Aspire.Hosting.Ngrok.AppHost.csproj | 2 +- ...olkit.Aspire.Hosting.Ollama.AppHost.csproj | 2 +- ...ting.OpenTelemetryCollector.AppHost.csproj | 2 +- ...Aspire.Hosting.PapercutSmtp.AppHost.csproj | 2 +- ...sting.PostgreSQL.Extensions.AppHost.csproj | 2 +- ...tyToolkit.Aspire.PowerShell.AppHost.csproj | 2 +- ...e.Hosting.Python.Extensions.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.RavenDB.AppHost.csproj | 2 +- ...re.Hosting.Redis.Extensions.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Rust.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Solr.AppHost.csproj | 2 +- ...Hosting.SqlDatabaseProjects.AppHost.csproj | 2 +- ...munityToolkit.Aspire.Sqlite.AppHost.csproj | 2 +- ...osting.SqlServer.Extensions.AppHost.csproj | 2 +- ...olkit.Aspire.Hosting.Stripe.AppHost.csproj | 2 +- ...it.Aspire.Hosting.SurrealDb.AppHost.csproj | 2 +- nuget.config | 4 ++ .../Ollama.AppHost/Ollama.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Testing.csproj | 2 +- 47 files changed, 83 insertions(+), 79 deletions(-) diff --git a/.github/agents/hosting-integration-creator.agent.md b/.github/agents/hosting-integration-creator.agent.md index 7e85718b7..5bab4129a 100644 --- a/.github/agents/hosting-integration-creator.agent.md +++ b/.github/agents/hosting-integration-creator.agent.md @@ -238,7 +238,7 @@ Each hosting integration should have a corresponding sample application in the ` Here is an example of the `csproj` file for the AppHost project for the Bun hosting integration: ```xml - + Exe @@ -348,9 +348,9 @@ When creating hosting integrations for programming languages (e.g., Golang, Rust Language-based hosting integrations should support the ecosystem's package managers and dependency management: -- **Build Tags/Features**: Allow users to specify conditional compilation flags (e.g., Go build tags: `buildTags: ["dev", "production"]`) -- **Dependency Installation**: Optionally support automatic dependency installation before running (e.g., `go mod download`, `npm install`) -- **Executable Path Flexibility**: Support both default entry points (e.g., `"."` for Go) and custom paths (e.g., `"./cmd/server"`) +- **Build Tags/Features**: Allow users to specify conditional compilation flags (e.g., Go build tags: `buildTags: ["dev", "production"]`) +- **Dependency Installation**: Optionally support automatic dependency installation before running (e.g., `go mod download`, `npm install`) +- **Executable Path Flexibility**: Support both default entry points (e.g., `"."` for Go) and custom paths (e.g., `"./cmd/server"`) Example from Golang integration: @@ -380,10 +380,10 @@ public static IResourceBuilder AddGolangApp( Language-based integrations should automatically generate optimized Dockerfiles using multi-stage builds when publishing: -- **Build Stage**: Uses the language's official SDK image to compile/build the application -- **Runtime Stage**: Uses a minimal base image (e.g., Alpine Linux) for smaller final images -- **Security**: Install necessary certificates (e.g., CA certificates for HTTPS support) -- **Optimization**: Disable unnecessary features in build (e.g., `CGO_ENABLED=0` for Go) +- **Build Stage**: Uses the language's official SDK image to compile/build the application +- **Runtime Stage**: Uses a minimal base image (e.g., Alpine Linux) for smaller final images +- **Security**: Install necessary certificates (e.g., CA certificates for HTTPS support) +- **Optimization**: Disable unnecessary features in build (e.g., `CGO_ENABLED=0` for Go) Example from Golang integration: @@ -437,8 +437,8 @@ private static IResourceBuilder PublishAsGolangDock For language integrations that may need secure connections: -- **CA Certificates**: Install CA certificates in runtime image for HTTPS client requests -- **Runtime Configuration**: Ensure the generated container supports TLS connections (e.g., `apk --no-cache add ca-certificates`) +- **CA Certificates**: Install CA certificates in runtime image for HTTPS client requests +- **Runtime Configuration**: Ensure the generated container supports TLS connections (e.g., `apk --no-cache add ca-certificates`) Example from Golang Dockerfile generation: @@ -454,9 +454,9 @@ context.Builder Automatically detect and use the appropriate language version from project files: -- **Project Files**: Parse version from language-specific files (e.g., `go.mod`, `package.json`, `Cargo.toml`) -- **Installed Toolchain**: Fall back to the installed language toolchain version -- **Default Version**: Use a sensible default if detection fails +- **Project Files**: Parse version from language-specific files (e.g., `go.mod`, `package.json`, `Cargo.toml`) +- **Installed Toolchain**: Fall back to the installed language toolchain version +- **Default Version**: Use a sensible default if detection fails Example from Golang integration: @@ -536,9 +536,9 @@ internal static string? DetectGoVersion(string workingDirectory, ILogger logger) Allow users to customize base images for both build and runtime stages: -- **Customizable Build Image**: Let users override the builder/SDK image (e.g., `golang:1.22-alpine` instead of `golang:1.22`) -- **Customizable Runtime Image**: Let users override the runtime image (e.g., `alpine:3.20` instead of `alpine:3.21`) -- **Annotation-Based Configuration**: Use annotations to store custom base image settings +- **Customizable Build Image**: Let users override the builder/SDK image (e.g., `golang:1.22-alpine` instead of `golang:1.22`) +- **Customizable Runtime Image**: Let users override the runtime image (e.g., `alpine:3.20` instead of `alpine:3.21`) +- **Annotation-Based Configuration**: Use annotations to store custom base image settings Example annotation and extension method: @@ -579,11 +579,11 @@ var golang = builder.AddGolangApp("golang", "../gin-api") For language-based integrations, the README.md should include: -- **Publishing Section**: Explain automatic Dockerfile generation -- **Version Detection**: Document how version detection works -- **Customization Options**: Show how to customize base images -- **TLS Support**: Note that CA certificates are included for HTTPS -- **Build Options**: Document package manager flags, build tags, etc. +- **Publishing Section**: Explain automatic Dockerfile generation +- **Version Detection**: Document how version detection works +- **Customization Options**: Show how to customize base images +- **TLS Support**: Note that CA certificates are included for HTTPS +- **Build Options**: Document package manager flags, build tags, etc. Example README structure: @@ -595,6 +595,7 @@ When publishing your Aspire application, the [Language] resource automatically g ### Automatic Version Detection The integration automatically detects the [Language] version to use by: + 1. Checking the [project file] for the version directive 2. Falling back to the installed toolchain version 3. Using [version] as the default if no version is detected @@ -608,17 +609,19 @@ You can customize the base images used in the Dockerfile: ### Generated Dockerfile The automatically generated Dockerfile: -- Uses the detected or default [Language] version as the build stage -- Uses a minimal runtime image for a smaller final image -- Installs CA certificates for HTTPS support -- Respects build options if specified + +- Uses the detected or default [Language] version as the build stage +- Uses a minimal runtime image for a smaller final image +- Installs CA certificates for HTTPS support +- Respects build options if specified ``` ### Testing Considerations When testing language-based integrations: -- **Unit Tests**: Verify build arguments, version detection logic, and annotation handling -- **Integration Tests**: Test the full publishing workflow if possible -- **Version Detection Tests**: Mock file system and process execution to test version detection -- **Dockerfile Generation**: Verify the generated Dockerfile structure matches expectations +- **Unit Tests**: Verify build arguments, version detection logic, and annotation handling +- **Integration Tests**: Test the full publishing workflow if possible +- **Version Detection Tests**: Mock file system and process execution to test version detection +- **Dockerfile Generation**: Verify the generated Dockerfile structure matches expectations + diff --git a/.github/chatmodes/New Aspire Hosting integration.chatmode.md b/.github/chatmodes/New Aspire Hosting integration.chatmode.md index a56a5a096..78ef54161 100644 --- a/.github/chatmodes/New Aspire Hosting integration.chatmode.md +++ b/.github/chatmodes/New Aspire Hosting integration.chatmode.md @@ -217,7 +217,7 @@ dotnet new aspire-apphost -n CommunityToolkit.Aspire.Hosting..AppHost`. -Once created, refer to existing AppHost `csproj` files to ensure that the right packages are referenced, such as `CommunityToolkit.Aspire.Hosting.`. For the `Sdk`, ensure the version is `$(AspireAppHostSdkVersion)`, since we use a MSBuild variable to ensure that a consistent version is used across all App Host projects. Any `PackageReference` elements should **not** have a version specified. +Once created, refer to existing AppHost `csproj` files to ensure that the right packages are referenced, such as `CommunityToolkit.Aspire.Hosting.`. Any `PackageReference` elements should **not** have a version specified. Next, edit the `AppHost.cs` file that the template created to use the hosting integration. diff --git a/Directory.Build.props b/Directory.Build.props index 286aae9ed..f8f53f9ab 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,9 +12,8 @@ enable 13 - $(AspireMajorVersion).0.0 - $(AspireVersion) - preview.1.25560.3 + $(AspireMajorVersion).1.0-preview.1.25610.7 + 9.0.0 10.0.0 1.12.0 diff --git a/Directory.Packages.props b/Directory.Packages.props index d2b01aa6f..6fc8302a9 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,8 +10,8 @@ - - + + diff --git a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj index 1f0184a81..678991a09 100644 --- a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj +++ b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj index b3af2cb52..a3447bc60 100644 --- a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj +++ b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj index 0d478dfe6..ac5458f32 100644 --- a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj +++ b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj index 19bb30956..39fbe836c 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj index 4ed1f0b1b..ffa805f62 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj index 341c9da2b..b44bc39d6 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj index b9ee73429..859b2990e 100644 --- a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj +++ b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj index dd73561b5..7d73f4d1d 100644 --- a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj +++ b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj index 7afdf7c8f..db0b587d0 100644 --- a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj +++ b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj index bf816ad77..0d10db746 100644 --- a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj +++ b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj index 69c3725e9..d09195a1a 100644 --- a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj +++ b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj index 05f20ef72..254fc98a7 100644 --- a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj +++ b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj index f197475db..a54be3e40 100644 --- a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj +++ b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj index e7e812def..c2e935692 100644 --- a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj +++ b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj index 53bfce5cc..b793eae15 100644 --- a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj +++ b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj @@ -1,6 +1,4 @@ - - - + Exe diff --git a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj index 83cd4499d..bd32e1df5 100644 --- a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj +++ b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj index 52f01f05b..c7aaee1eb 100644 --- a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj +++ b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj index 301c6ac3b..dc9babee6 100644 --- a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj +++ b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj index 5032735d1..434eea34b 100644 --- a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj +++ b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj index 6730f895d..e5562f134 100644 --- a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj +++ b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj index eee0322d4..a4b24f269 100644 --- a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj +++ b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj index 333ccd6ce..da5f201b8 100644 --- a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj +++ b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj index 5113f431c..db87cfc08 100644 --- a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj +++ b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj index 749f548a3..adb84bdc6 100644 --- a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj +++ b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj index 9adcf1039..317617d90 100644 --- a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj +++ b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe dea39c19-075e-4a9d-aba2-ffd65de91136 diff --git a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj index b5a0e3a01..6843a87f5 100644 --- a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj +++ b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj index 0d3f3001e..f17887cf8 100644 --- a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj +++ b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj index 1eece1881..b69564830 100644 --- a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj +++ b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj index de20915dc..1fdabba13 100644 --- a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj +++ b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj index f53ca3b8b..4d8cd747f 100644 --- a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj +++ b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj index 8b76edb34..7b5fea6c8 100644 --- a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj +++ b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj index 1b43b6b77..f29317841 100644 --- a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj +++ b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj index 89a696e5a..28e872abe 100644 --- a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj +++ b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj index 09c9d5361..892bf5aac 100644 --- a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj +++ b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj index 0ba15f77c..211acc6e0 100644 --- a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj +++ b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj index 83b985d09..6d9c1ebf7 100644 --- a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj +++ b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj index f0699ea12..e3c00e9b2 100644 --- a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj +++ b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj index a3f6701dc..e62e95815 100644 --- a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj +++ b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj index ab727dc64..ab9c4e83f 100644 --- a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj +++ b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj index 80fd00616..9204e700a 100644 --- a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj +++ b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/nuget.config b/nuget.config index d06d9d3ce..161ba7853 100644 --- a/nuget.config +++ b/nuget.config @@ -6,6 +6,7 @@ + @@ -15,6 +16,9 @@ + + + diff --git a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj index 643c2f052..2f611717f 100644 --- a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj +++ b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj index 44daba410..66a6c6909 100644 --- a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj +++ b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj @@ -1,4 +1,4 @@ - + false From ffb97b935cd0b1f13dbb000ed8871e48ce345c29 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Thu, 11 Dec 2025 01:30:19 +0000 Subject: [PATCH 02/15] Updating redis types due to obsoleting --- .../Program.cs | 2 +- .../AzureRedisCacheDaprHostingExtensions.cs | 10 +++++----- .../ResourceCreationTests.cs | 17 ++++++++--------- .../AzureDaprPublishingHelperTests.cs | 10 +++++----- 4 files changed, 19 insertions(+), 20 deletions(-) diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/Program.cs b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/Program.cs index 8a1ebfbb9..91fd7e4b1 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/Program.cs +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/Program.cs @@ -2,7 +2,7 @@ builder.AddAzureContainerAppEnvironment("cae").WithDaprComponents(); -var redis = builder.AddAzureRedis("redisState") +var redis = builder.AddAzureManagedRedis("redisState") .RunAsContainer(); // State store using Redis diff --git a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs index 69208aec9..939cef856 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs +++ b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs @@ -27,7 +27,7 @@ public static class AzureRedisCacheDaprHostingExtensions /// The Dapr component resource builder. /// The Azure Redis cache resource builder. /// The updated Dapr component resource builder. - public static IResourceBuilder WithReference(this IResourceBuilder builder, IResourceBuilder source) + public static IResourceBuilder WithReference(this IResourceBuilder builder, IResourceBuilder source) { if (builder.ApplicationBuilder.ExecutionContext.IsRunMode) { @@ -55,7 +55,7 @@ public static IResourceBuilder WithReference(this IResou // Private methods do not require XML documentation. - private static IResourceBuilder ConfigureRedisStateComponent(this IResourceBuilder builder, IResourceBuilder redisBuilder) + private static IResourceBuilder ConfigureRedisStateComponent(this IResourceBuilder builder, IResourceBuilder redisBuilder) { ArgumentNullException.ThrowIfNull(builder, nameof(builder)); ArgumentNullException.ThrowIfNull(redisBuilder, nameof(redisBuilder)); @@ -72,7 +72,7 @@ private static IResourceBuilder ConfigureRedisStateCompo return builder; } - private static IResourceBuilder ConfigureRedisPubSubComponent(this IResourceBuilder builder, IResourceBuilder redisBuilder) + private static IResourceBuilder ConfigureRedisPubSubComponent(this IResourceBuilder builder, IResourceBuilder redisBuilder) { ArgumentNullException.ThrowIfNull(builder, nameof(builder)); ArgumentNullException.ThrowIfNull(redisBuilder, nameof(redisBuilder)); @@ -89,7 +89,7 @@ private static IResourceBuilder ConfigureRedisPubSubComp return builder; } - private static void ConfigureForManagedIdentityAuthentication(this IResourceBuilder builder, IResourceBuilder redisBuilder, string componentType) + private static void ConfigureForManagedIdentityAuthentication(this IResourceBuilder builder, IResourceBuilder redisBuilder, string componentType) { var principalIdParam = new ProvisioningParameter(AzureBicepResource.KnownParameters.PrincipalId, typeof(string)); @@ -154,7 +154,7 @@ is ContainerAppManagedEnvironment managedEnvironment && } - private static void ConfigureForAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder redisBuilder, string componentType) + private static void ConfigureForAccessKeyAuthentication(this IResourceBuilder builder, IResourceBuilder redisBuilder, string componentType) { var kvNameParam = new ProvisioningParameter(redisKeyVaultNameKey, typeof(string)); var secretStoreComponent = new ProvisioningParameter(secretStoreComponentKey, typeof(string)); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.Tests/ResourceCreationTests.cs index e4e870322..7d3fedbf6 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.Tests/ResourceCreationTests.cs @@ -2,7 +2,6 @@ using Aspire.Hosting.Utils; using Aspire.Hosting.Azure; using CommunityToolkit.Aspire.Hosting.Dapr; -using CommunityToolkit.Aspire.Hosting.Azure.Dapr; using AzureRedisResource = Azure.Provisioning.Redis.RedisResource; @@ -15,7 +14,7 @@ public void WithReference_WhenAADDisabled_UsesPasswordSecret() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - var redisState = builder.AddAzureRedis("redisState") + var redisState = builder.AddAzureManagedRedis("redisState") .WithAccessKeyAuthentication() .RunAsContainer(); @@ -41,7 +40,7 @@ public void WithReference_WhenAADDisabled_UsesPasswordSecret() // Check there's an annotation on it Assert.Contains(daprStateStore.Annotations, a => a is AzureDaprComponentPublishingAnnotation); - var redisCache = Assert.Single(appModel.Resources.OfType()); + var redisCache = Assert.Single(appModel.Resources.OfType()); string redisBicep = redisCache.GetBicepTemplateString(); @@ -116,7 +115,7 @@ public void WithReference_WhenAADEnabled_SkipsPasswordSecret() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - var redisState = builder.AddAzureRedis("redisState") + var redisState = builder.AddAzureManagedRedis("redisState") .RunAsContainer(); var daprState = builder.AddDaprStateStore("statestore") @@ -141,7 +140,7 @@ public void WithReference_WhenAADEnabled_SkipsPasswordSecret() // Check there's an annotation on it Assert.Contains(daprStateStore.Annotations, a => a is AzureDaprComponentPublishingAnnotation); - var redisCache = Assert.Single(appModel.Resources.OfType()); + var redisCache = Assert.Single(appModel.Resources.OfType()); string redisBicep = redisCache.GetBicepTemplateString(); @@ -190,7 +189,7 @@ public void WithReference_WhenTLSDisabled_UsesNonSslPort() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - var redisState = builder.AddAzureRedis("redisState") + var redisState = builder.AddAzureManagedRedis("redisState") .ConfigureInfrastructure(infr => { var redis = infr.GetProvisionableResources().OfType().Single(); @@ -220,7 +219,7 @@ public void WithReference_WhenTLSDisabled_UsesNonSslPort() // Check there's an annotation on it Assert.Contains(daprStateStore.Annotations, a => a is AzureDaprComponentPublishingAnnotation); - var redisCache = Assert.Single(appModel.Resources.OfType()); + var redisCache = Assert.Single(appModel.Resources.OfType()); string redisBicep = redisCache.GetBicepTemplateString(); @@ -274,7 +273,7 @@ public void WithReference_WhenNonStateType_ThrowsException() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - var redisState = builder.AddAzureRedis("redisState").RunAsContainer(); + var redisState = builder.AddAzureManagedRedis("redisState").RunAsContainer(); // The Redis connection should only be used with state store components var unknownComponent = builder.AddDaprComponent("unknown", "component"); @@ -310,7 +309,7 @@ public void PreferredPattern_ReferencingRedisStateComponent() using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); // Add the Redis state and Dapr state store - var redisState = builder.AddAzureRedis("redisState").RunAsContainer(); + var redisState = builder.AddAzureManagedRedis("redisState").RunAsContainer(); var daprState = builder.AddDaprStateStore("statestore"); // Add an app with a sidecar diff --git a/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Tests/AzureDaprPublishingHelperTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Tests/AzureDaprPublishingHelperTests.cs index 7ec6a9e0d..5651b4c8f 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Tests/AzureDaprPublishingHelperTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Tests/AzureDaprPublishingHelperTests.cs @@ -15,7 +15,7 @@ public async Task ExecuteProviderSpecificRequirements_AddsAzureContainerAppCusto { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - var redisState = builder.AddAzureRedis("redisState").RunAsContainer(); + var redisState = builder.AddAzureManagedRedis("redisState").RunAsContainer(); var daprState = builder.AddDaprStateStore("daprState"); @@ -50,24 +50,24 @@ public void SidecarCanReferenceAzureDaprComponents() // Arrange using var builder = TestDistributedApplicationBuilder.Create(); - var redisState = builder.AddAzureRedis("redisState").RunAsContainer(); + var redisState = builder.AddAzureManagedRedis("redisState").RunAsContainer(); var daprState = builder.AddDaprStateStore("daprState"); var pubSub = builder.AddDaprPubSub("pubsub"); // Act - Reference Dapr components through the sidecar (preferred approach) builder.AddContainer("myapp", "image") - .WithDaprSidecar(sidecar => + .WithDaprSidecar(sidecar => { sidecar.WithReference(daprState); sidecar.WithReference(pubSub); }); using var app = builder.Build(); - + // Assert var appModel = app.Services.GetRequiredService(); var sidecarResource = Assert.Single(appModel.Resources.OfType()); - + // Verify the sidecar has reference annotations to both components var referenceAnnotations = sidecarResource.Annotations.OfType().ToList(); Assert.Equal(2, referenceAnnotations.Count); From 7cd5d0e5330b3b0d3e14be4b0c6a7ac0e5956944 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Thu, 11 Dec 2025 04:14:58 +0000 Subject: [PATCH 03/15] Refactor tests to use new environment variable and argument retrieval methods - Updated multiple test files to replace calls to GetEnvironmentVariableValuesAsync() with GetEnvironmentVariablesAsync(). - Replaced calls to GetArgumentValuesAsync() with GetArgumentListAsync() in various test cases. - Introduced new utility methods in the CommunityToolkit.Aspire.Testing namespace for better argument and environment variable handling. --- .../AddAdminerTests.cs | 3 +- .../AddBunAppTests.cs | 8 ++--- .../DaprTests.cs | 9 +++--- .../AddDbGateTests.cs | 3 +- .../ResourceCreationTests.cs | 5 +-- .../NxResourceCreationTests.cs | 13 ++++---- .../TurborepoResourceCreationTests.cs | 13 ++++---- .../KeycloakExtensionTests.cs | 14 +++----- .../KeycloakWithPostgresIntegrationTest.cs | 3 +- .../AddKurrentDBTests.cs | 3 +- ...InspectorResourceBuilderExtensionsTests.cs | 9 +++--- .../AddMeilisearchTests.cs | 5 +-- .../ResourceCreationTests.cs | 5 +-- .../ResourceCreationTests.cs | 9 +++--- .../AddOllamaLocalTests.cs | 25 ++++++++------- .../ResourceCreationTests.cs | 11 ++++--- .../ResourceCreationTests.cs | 5 +-- .../AddRustAppTests.cs | 5 +-- .../ResourceCreationTests.cs | 9 +++--- .../AddSqliteTests.cs | 3 +- .../AddStripeTests.cs | 7 ++-- .../AddSurrealServerTests.cs | 5 +-- .../ArgumentEvaluator.cs | 32 +++++++++++++++++++ .../EnvironmentVariableEvaluator.cs | 32 +++++++++++++++++++ 24 files changed, 158 insertions(+), 78 deletions(-) create mode 100644 tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs create mode 100644 tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs diff --git a/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs index 963891292..b03b91ff3 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs @@ -3,6 +3,7 @@ using Aspire.Components.Common.Tests; using Aspire.Hosting; using Aspire.Hosting.Utils; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Adminer.Tests; @@ -178,7 +179,7 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes() Assert.Equal("postgres1-adminer", adminerContainerResource.Name); - var envs = await adminerContainerResource.GetEnvironmentVariableValuesAsync(); + var envs = await adminerContainerResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Bun.Tests/AddBunAppTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Bun.Tests/AddBunAppTests.cs index fe64f2517..b05a8aa52 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Bun.Tests/AddBunAppTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Bun.Tests/AddBunAppTests.cs @@ -1,5 +1,5 @@ using Aspire.Hosting; -using Aspire.Hosting.ApplicationModel; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Bun.Tests; @@ -34,7 +34,7 @@ public async Task BunAppDefaultArgs() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("run", arg), @@ -55,7 +55,7 @@ public async Task BunAppWatchArgs() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("--watch", arg), @@ -77,7 +77,7 @@ public async Task BunAppWithCustomEntryPoint() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("run", arg), diff --git a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/DaprTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/DaprTests.cs index 5f484bd1f..df7fd990d 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/DaprTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/DaprTests.cs @@ -3,6 +3,7 @@ using Aspire.Hosting; using Aspire.Hosting.Utils; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Dapr.Tests; @@ -52,8 +53,8 @@ public async Task WithDaprSideCarAddsAnnotationAndSidecarResource() e.AllocatedEndpoint = new(e, "localhost", ports[e.Name], targetPortExpression: $$$"""{{- portForServing "{{{e.Name}}}" -}}"""); } - var config = await container.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Run); - var sidecarArgs = await sideCarCli.GetArgumentValuesAsync(); + var config = await container.GetEnvironmentVariablesAsync(DistributedApplicationOperation.Run); + var sidecarArgs = await sideCarCli.GetArgumentListAsync(); Assert.Equal("3500", config["DAPR_HTTP_PORT"]); Assert.Equal("50001", config["DAPR_GRPC_PORT"]); @@ -151,8 +152,8 @@ public async Task WithDaprSideCarAddsAnnotationBasedOnTheSidecarAppOptions(strin e.AllocatedEndpoint = new(e, "localhost", ports[e.Name], targetPortExpression: $$$"""{{- portForServing "{{{e.Name}}}" -}}"""); } - var config = await container.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Run); - var sidecarArgs = await sideCarCli.GetArgumentValuesAsync(); + var config = await container.GetEnvironmentVariablesAsync(DistributedApplicationOperation.Run); + var sidecarArgs = await sideCarCli.GetArgumentListAsync(); Assert.Equal("http://host.docker.internal:3500", config["DAPR_HTTP_ENDPOINT"]); Assert.Equal("http://host.docker.internal:50001", config["DAPR_GRPC_ENDPOINT"]); diff --git a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs index ec0cbd1a1..97456dea6 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs @@ -3,6 +3,7 @@ using Aspire.Hosting; using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Utils; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.DbGate.Tests; @@ -243,7 +244,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes() Assert.Equal("mongodb1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, diff --git a/tests/CommunityToolkit.Aspire.Hosting.Golang.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Golang.Tests/ResourceCreationTests.cs index c0ed2d211..e847ca911 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Golang.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Golang.Tests/ResourceCreationTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Golang.Extensions.Tests; @@ -37,7 +38,7 @@ public async Task GolangAppWithBuildTagsAsync() Assert.NotNull(resource); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection( args, arg => @@ -75,7 +76,7 @@ public async Task GolangAppWithExecutableAsync() Assert.NotNull(resource); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection( args, arg => diff --git a/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/NxResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/NxResourceCreationTests.cs index 081f38574..6c09787d8 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/NxResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/NxResourceCreationTests.cs @@ -1,5 +1,6 @@ using Aspire.Hosting; using Aspire.Hosting.JavaScript; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests; @@ -94,7 +95,7 @@ public async Task Nx_WithPackageManagerLaunch_InfersFromInstallerWhenNotProvided "pnpm" => "pnpx", _ => packageManager }, nxAppResource.Command); - var nxAppArgs = await nxAppResource.GetArgumentValuesAsync(); + var nxAppArgs = await nxAppResource.GetArgumentListAsync(); Assert.Collection(nxAppArgs, arg => Assert.Equal("nx", arg), arg => Assert.Equal("serve", arg), @@ -132,7 +133,7 @@ public async Task Nx_WithPackageManagerLaunch_WithPnpmAndYarn() var nxPnpmApp = appModel.Resources.OfType().Single(r => r.Name == "app1-pnpm"); Assert.Equal("pnpx", nxPnpmApp.Command); - var pnpmArgs = await nxPnpmApp.GetArgumentValuesAsync(); + var pnpmArgs = await nxPnpmApp.GetArgumentListAsync(); Assert.Collection(pnpmArgs, arg => Assert.Equal("nx", arg), arg => Assert.Equal("serve", arg), @@ -144,7 +145,7 @@ public async Task Nx_WithPackageManagerLaunch_WithPnpmAndYarn() var nxYarnApp = appModel.Resources.OfType().Single(r => r.Name == "app1-yarn"); Assert.Equal("yarn", nxYarnApp.Command); - var yarnArgs = await nxYarnApp.GetArgumentValuesAsync(); + var yarnArgs = await nxYarnApp.GetArgumentListAsync(); Assert.Collection(yarnArgs, arg => Assert.Equal("nx", arg), arg => Assert.Equal("serve", arg), @@ -167,7 +168,7 @@ public async Task Nx_NoWithPackageManagerLaunch_Defaults_AppCommandsIncludeNpxOr var nxApp = appModel.Resources.OfType().Single(r => r.Name == "app-nx-default"); // Command should be 'nx' (default) and args should include npx prefix because no package manager annotation Assert.Equal("nx", nxApp.Command); - var nxArgs = await nxApp.GetArgumentValuesAsync(); + var nxArgs = await nxApp.GetArgumentListAsync(); Assert.Collection(nxArgs, arg => Assert.Equal("serve", arg), arg => Assert.Equal("app-nx-default", arg)); @@ -206,7 +207,7 @@ public async Task Nx_WithPackageManager_WithoutRunWith_DoesNotAffectAppExecution // App should use "nx" directly, not wrapped via package manager var nxApp = Assert.Single(appModel.Resources.OfType()); Assert.Equal("nx", nxApp.Command); - var args = await nxApp.GetArgumentValuesAsync(); + var args = await nxApp.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("serve", arg), arg => Assert.Equal("test-app", arg)); @@ -307,7 +308,7 @@ public async Task Nx_MultipleApps_AllInheritExecutionAnnotation(string packageMa }; Assert.Equal(launcherName, nxApp.Command); - var args = await nxApp.GetArgumentValuesAsync(); + var args = await nxApp.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("nx", arg), arg => Assert.Equal("serve", arg), diff --git a/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/TurborepoResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/TurborepoResourceCreationTests.cs index cbca136f9..38d5111f6 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/TurborepoResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests/TurborepoResourceCreationTests.cs @@ -1,5 +1,6 @@ using Aspire.Hosting; using Aspire.Hosting.JavaScript; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.Tests; @@ -93,7 +94,7 @@ public async Task Turborepo_WithPackageManagerLaunch_InfersFromInstallerWhenNotP "pnpm" => "pnpx", _ => packageManager }, turboApp.Command); - var turboArgs = await turboApp.GetArgumentValuesAsync(); + var turboArgs = await turboApp.GetArgumentListAsync(); Assert.Collection(turboArgs, arg => Assert.Equal("turbo", arg), arg => Assert.Equal("run", arg), @@ -123,7 +124,7 @@ public async Task Turborepo_WithPackageManagerLaunch_WithPnpmAndYarn() var turboPnpmApp = appModel.Resources.OfType().Single(r => r.Name == "app1-pnpm"); Assert.Equal("pnpx", turboPnpmApp.Command); - var tpnpmArgs = await turboPnpmApp.GetArgumentValuesAsync(); + var tpnpmArgs = await turboPnpmApp.GetArgumentListAsync(); Assert.Collection(tpnpmArgs, arg => Assert.Equal("turbo", arg), arg => Assert.Equal("run", arg), @@ -137,7 +138,7 @@ public async Task Turborepo_WithPackageManagerLaunch_WithPnpmAndYarn() var turboYarnApp = appModel.Resources.OfType().Single(r => r.Name == "app1-yarn"); Assert.Equal("yarn", turboYarnApp.Command); - var tyarnArgs = await turboYarnApp.GetArgumentValuesAsync(); + var tyarnArgs = await turboYarnApp.GetArgumentListAsync(); Assert.Collection(tyarnArgs, arg => Assert.Equal("turbo", arg), arg => Assert.Equal("run", arg), @@ -162,7 +163,7 @@ public async Task Turborepo_NoWithPackageManagerLaunch_Defaults_AppCommandsInclu var turboApp = appModel.Resources.OfType().Single(r => r.Name == "app-turbo-default"); // Command should be 'turbo' (default) and args should include npx prefix Assert.Equal("turbo", turboApp.Command); - var turboArgs = await turboApp.GetArgumentValuesAsync(); + var turboArgs = await turboApp.GetArgumentListAsync(); Assert.Collection(turboArgs, arg => Assert.Equal("run", arg), arg => Assert.Equal("dev", arg), @@ -201,7 +202,7 @@ public async Task Turborepo_WithPackageManager_WithoutRunWith_DoesNotAffectAppEx // App should use "turbo" directly, not wrapped via package manager var turboApp = Assert.Single(appModel.Resources.OfType()); Assert.Equal("turbo", turboApp.Command); - var args = await turboApp.GetArgumentValuesAsync(); + var args = await turboApp.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("run", arg), arg => Assert.Equal("dev", arg), @@ -314,7 +315,7 @@ public async Task Turborepo_MultipleApps_AllInheritExecutionAnnotation(string pa }; Assert.Equal(launcherName, turboApp.Command); - var args = await turboApp.GetArgumentValuesAsync(); + var args = await turboApp.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("turbo", arg), arg => Assert.Equal("run", arg), diff --git a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs index 2c1072d3b..29f21043f 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs @@ -1,15 +1,11 @@ using Aspire.Hosting; using Moq; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests; public class KeycloakExtensionTests { - private static async Task> GetEnv(IResourceBuilder kc) - { - return await kc.Resource.GetEnvironmentVariableValuesAsync(); - } - [Fact] public void WithPostgresDev_Should_Throw_If_Builder_Is_Null() { @@ -50,7 +46,7 @@ public async Task WithPostgres_Defaults_SetBasicVars() var kc = app.AddKeycloak("kc") .WithPostgres(db); - var env = await GetEnv(kc); + var env = await kc.Resource.GetEnvironmentVariablesAsync(); Assert.Equal("postgres", env["KC_DB"]); Assert.True(env.ContainsKey("KC_DB_URL")); @@ -72,7 +68,7 @@ public async Task WithPostgres_ExplicitParameters_AreUsed() var kc = app.AddKeycloak("kc") .WithPostgres(db, user, pass); - var env = await GetEnv(kc); + var env = await kc.Resource.GetEnvironmentVariablesAsync(); Assert.False(ReferenceEquals(user.Resource, env["KC_DB_USERNAME"])); Assert.False(ReferenceEquals(pass.Resource, env["KC_DB_PASSWORD"])); @@ -97,7 +93,7 @@ public async Task WithPostgres_Uses_ServerParameters_When_Present() var kc = app.AddKeycloak("kc") .WithPostgres(db); - var env = await GetEnv(kc); + var env = await kc.Resource.GetEnvironmentVariablesAsync(); Assert.NotEqual("postgres", env["KC_DB_USERNAME"].ToString()); Assert.NotEqual("postgres", env["KC_DB_PASSWORD"].ToString()); } @@ -115,7 +111,7 @@ public async Task WithPostgres_XA_Flag_Set_When_Enabled(bool xaEnabled) var kc = app.AddKeycloak("kc") .WithPostgres(db, xaEnabled: xaEnabled); - var env = await GetEnv(kc); + var env = await kc.Resource.GetEnvironmentVariablesAsync(); Assert.Equal(xaEnabled.ToString().ToLower(), env["KC_TRANSACTION_XA_ENABLED"]); } } \ No newline at end of file diff --git a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs index a295d9f91..f714f7f8e 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs @@ -1,6 +1,7 @@ using Aspire.Components.Common.Tests; using Aspire.Hosting; using Aspire.Hosting.Utils; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests; @@ -72,7 +73,7 @@ await app.ResourceNotifications .WaitForResourceHealthyAsync(kc.Resource.Name) .WaitAsync(TimeSpan.FromMinutes(5)); - var env = await kc.Resource.GetEnvironmentVariableValuesAsync(); + var env = await kc.Resource.GetEnvironmentVariablesAsync(); Assert.Equal("postgres", env["KC_DB"]); Assert.True(env.ContainsKey("KC_DB_URL")); diff --git a/tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/AddKurrentDBTests.cs b/tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/AddKurrentDBTests.cs index 727dbb5f6..d99cff410 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/AddKurrentDBTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.KurrentDB.Tests/AddKurrentDBTests.cs @@ -3,6 +3,7 @@ using Aspire.Hosting; using System.Net.Sockets; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.KurrentDB.Tests; @@ -39,7 +40,7 @@ public async Task AddKurrentDBContainerWithDefaultsAddsAnnotationMetadata() Assert.Equal(KurrentDBContainerImageTags.Image, containerAnnotation.Image); Assert.Equal(KurrentDBContainerImageTags.Registry, containerAnnotation.Registry); - var config = await kurrentdb.Resource.GetEnvironmentVariableValuesAsync(); + var config = await kurrentdb.Resource.GetEnvironmentVariablesAsync(); Assert.Collection(config, env => diff --git a/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/McpInspectorResourceBuilderExtensionsTests.cs b/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/McpInspectorResourceBuilderExtensionsTests.cs index dd21df777..83d3c7bf9 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/McpInspectorResourceBuilderExtensionsTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.McpInspector.Tests/McpInspectorResourceBuilderExtensionsTests.cs @@ -1,6 +1,7 @@ using Aspire.Hosting; using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.JavaScript; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.McpInspector.Tests; @@ -567,7 +568,7 @@ public async Task WithYarnSetsCorrectArguments() var appModel = app.Services.GetRequiredService(); var inspectorResource = Assert.Single(appModel.Resources.OfType()); - var args = await inspectorResource.GetArgumentValuesAsync(); + var args = await inspectorResource.GetArgumentListAsync(); var argsList = args.ToList(); // For yarn, the first arg should be "dlx" @@ -594,7 +595,7 @@ public async Task WithPnpmSetsCorrectArguments() var appModel = app.Services.GetRequiredService(); var inspectorResource = Assert.Single(appModel.Resources.OfType()); - var args = await inspectorResource.GetArgumentValuesAsync(); + var args = await inspectorResource.GetArgumentListAsync(); var argsList = args.ToList(); // For pnpm, the first arg should be "dlx" @@ -620,7 +621,7 @@ public async Task DefaultNpxUsesCorrectArguments() var appModel = app.Services.GetRequiredService(); var inspectorResource = Assert.Single(appModel.Resources.OfType()); - var args = await inspectorResource.GetArgumentValuesAsync(); + var args = await inspectorResource.GetArgumentListAsync(); var argsList = args.ToList(); // For npm/npx, the first arg should be "-y" @@ -648,7 +649,7 @@ public async Task AddMcpInspectorWithOptionsRespectsInspectorVersion() var appModel = app.Services.GetRequiredService(); var inspectorResource = Assert.Single(appModel.Resources.OfType()); - var args = await inspectorResource.GetArgumentValuesAsync(); + var args = await inspectorResource.GetArgumentListAsync(); var argsList = args.ToList(); Assert.Equal("@modelcontextprotocol/inspector@1.2.3", argsList[1]); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/AddMeilisearchTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/AddMeilisearchTests.cs index 1037d13cd..a0b434ff5 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/AddMeilisearchTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/AddMeilisearchTests.cs @@ -3,6 +3,7 @@ using System.Net.Sockets; using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Meilisearch.Tests; @@ -39,7 +40,7 @@ public async Task AddMeilisearchContainerWithDefaultsAddsAnnotationMetadata() Assert.Equal(MeilisearchContainerImageTags.Image, containerAnnotation.Image); Assert.Equal(MeilisearchContainerImageTags.Registry, containerAnnotation.Registry); - var config = await meilisearch.Resource.GetEnvironmentVariableValuesAsync(); + var config = await meilisearch.Resource.GetEnvironmentVariablesAsync(); var env = Assert.Single(config); Assert.Equal("MEILI_MASTER_KEY", env.Key); @@ -80,7 +81,7 @@ public async Task AddMeilisearchContainerAddsAnnotationMetadata() Assert.Equal(MeilisearchContainerImageTags.Image, containerAnnotation.Image); Assert.Equal(MeilisearchContainerImageTags.Registry, containerAnnotation.Registry); - var config = await meilisearch.Resource.GetEnvironmentVariableValuesAsync(); + var config = await meilisearch.Resource.GetEnvironmentVariablesAsync(); var env = Assert.Single(config); Assert.Equal("MEILI_MASTER_KEY", env.Key); diff --git a/tests/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.Tests/ResourceCreationTests.cs index bef81aba8..fadc059d7 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.Tests/ResourceCreationTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.Tests; @@ -25,7 +26,7 @@ public async Task WithDbGateAddsAnnotations() Assert.Equal("mongodb-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -130,7 +131,7 @@ public async Task WithDbGateAddsAnnotationsForMultipleMongoDBResource() Assert.Equal("mongodb1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, diff --git a/tests/CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests/ResourceCreationTests.cs index 55ddce346..60429e68a 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests/ResourceCreationTests.cs @@ -1,5 +1,6 @@ using Aspire.Hosting; using System.Text.Json; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.MySql.Extensions.Tests; @@ -25,7 +26,7 @@ public async Task WithAdminerAddsAnnotations() Assert.Equal("mysql-adminer", adminerResource.Name); - var envs = await adminerResource.GetEnvironmentVariableValuesAsync(); + var envs = await adminerResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); @@ -126,7 +127,7 @@ public async Task WithAdminerAddsAnnotationsForMultipleMySqlResource() Assert.Equal("mysql1-adminer", adminerContainer.Name); - var envs = await adminerContainer.GetEnvironmentVariableValuesAsync(); + var envs = await adminerContainer.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); @@ -180,7 +181,7 @@ public async Task WithDbGateAddsAnnotations() Assert.Equal("mysql-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -298,7 +299,7 @@ public async Task WithDbGateAddsAnnotationsForMultipleMySqlResource() Assert.Equal("mysql1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, diff --git a/tests/CommunityToolkit.Aspire.Hosting.Ollama.Tests/AddOllamaLocalTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Ollama.Tests/AddOllamaLocalTests.cs index 3e2cd2f17..883c0a99b 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Ollama.Tests/AddOllamaLocalTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Ollama.Tests/AddOllamaLocalTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Ollama.Tests; @@ -42,7 +43,7 @@ public void VerifyCustomPort() Assert.Equal(12345, endpoint.Port); } - + [Fact] public async Task VerifyDefaultTargetPort() { @@ -54,14 +55,14 @@ public async Task VerifyDefaultTargetPort() var appModel = app.Services.GetRequiredService(); var resource = Assert.Single(appModel.Resources.OfType()); - var config = await resource.GetEnvironmentVariableValuesAsync(); - + var config = await resource.GetEnvironmentVariablesAsync(); + var endpoint = Assert.Single(resource.Annotations.OfType()); - + Assert.Equal(11434, endpoint.TargetPort); Assert.Equal("http://localhost:11434", config["OLLAMA_HOST"]); } - + [Fact] public async Task VerifyCustomTargetPort() { @@ -73,14 +74,14 @@ public async Task VerifyCustomTargetPort() var appModel = app.Services.GetRequiredService(); var resource = Assert.Single(appModel.Resources.OfType()); - var config = await resource.GetEnvironmentVariableValuesAsync(); - + var config = await resource.GetEnvironmentVariablesAsync(); + var endpoint = Assert.Single(resource.Annotations.OfType()); - + Assert.Equal(11435, endpoint.TargetPort); Assert.Equal("http://localhost:11435", config["OLLAMA_HOST"]); } - + [Fact] public void VerifyExcludedFromManifestByDefault() { @@ -95,7 +96,7 @@ public void VerifyExcludedFromManifestByDefault() Assert.True(resource.TryGetAnnotationsOfType(out var annotations)); } - + [Fact] public void CanSetMultipleModels() { @@ -235,7 +236,7 @@ public void OllamaLocalRegistersHttpHealthCheck() Assert.Contains("/", annotation.Key); Assert.Contains(resource.Name, annotation.Key); } - + [Fact] public void OllamaLocalRegistrationContainsResourceCommandAnnotations() { @@ -433,7 +434,7 @@ public void OllamaResourceCommandsUpdateState(string commandType) state = command.UpdateState(context); Assert.Equal(ResourceCommandState.Enabled, state); } - + [Fact] public void OpenWebUIConfigured() { diff --git a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs index 73c699796..313dbe9a5 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs @@ -1,5 +1,6 @@ using Aspire.Hosting; using System.Text.Json; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests; @@ -25,7 +26,7 @@ public async Task WithDbGateAddsAnnotations() Assert.Equal("postgres-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -143,7 +144,7 @@ public async Task WithDbGateAddsAnnotationsForMultiplePostgresResource() Assert.Equal("postgres1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -239,7 +240,7 @@ public async Task WithDbGateAddsAnnotationsForProvidedUsernamePassword() Assert.Equal("postgres-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -300,7 +301,7 @@ public async Task WithAdminerAddsAnnotations() Assert.Equal("postgres-adminer", adminerResource.Name); - var envs = await adminerResource.GetEnvironmentVariableValuesAsync(); + var envs = await adminerResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); @@ -401,7 +402,7 @@ public async Task WithAdminerAddsAnnotationsForMultiplePostgresResource() Assert.Equal("postgres1-adminer", adminerContainer.Name); - var envs = await adminerContainer.GetEnvironmentVariableValuesAsync(); + var envs = await adminerContainer.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Redis.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Redis.Extensions.Tests/ResourceCreationTests.cs index 6da1cbf18..dc2f31be6 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Redis.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Redis.Extensions.Tests/ResourceCreationTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Redis.Extensions.Tests; @@ -25,7 +26,7 @@ public async Task WithDbGateAddsAnnotations() Assert.Equal("redis-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -132,7 +133,7 @@ public async Task WithDbGateAddsAnnotationsForMultipleRedisResource() Assert.Equal("redis1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, diff --git a/tests/CommunityToolkit.Aspire.Hosting.Rust.Tests/AddRustAppTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Rust.Tests/AddRustAppTests.cs index 81eb4c080..018a971d6 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Rust.Tests/AddRustAppTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Rust.Tests/AddRustAppTests.cs @@ -3,6 +3,7 @@ using Aspire.Hosting; using CommunityToolkit.Aspire.Utils; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Rust.Tests; public class AddRustAppTests @@ -24,7 +25,7 @@ public async Task AddRustAppAddsAnnotationMetadata() Assert.Equal("rust-app", resource.Name); Assert.Equal(workingDirectory, resource.WorkingDirectory); Assert.Equal("cargo", resource.Command); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("run", arg)); } @@ -46,7 +47,7 @@ public async Task AddRustAppWithArgsAddsAnnotationMetadata() Assert.Equal("rust-app", resource.Name); Assert.Equal(workingDirectory, resource.WorkingDirectory); Assert.Equal("cargo", resource.Command); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("run", arg), arg => Assert.Equal("--verbose", arg)); diff --git a/tests/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.Tests/ResourceCreationTests.cs index 121154e25..b5d0be8e7 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.Tests/ResourceCreationTests.cs @@ -1,5 +1,6 @@ using Aspire.Hosting; using System.Text.Json; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.Tests; @@ -25,7 +26,7 @@ public async Task WithDbGateAddsAnnotations() Assert.Equal("sqlserver-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -143,7 +144,7 @@ public async Task WithDbGateAddsAnnotationsForMultipleSqlServerResource() Assert.Equal("sqlserver1-dbgate", dbGateResource.Name); - var envs = await dbGateResource.GetEnvironmentVariableValuesAsync(); + var envs = await dbGateResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); Assert.Collection(envs, @@ -234,7 +235,7 @@ public async Task WithAdminerAddsAnnotations() Assert.Equal("sqlserver-adminer", adminerResource.Name); - var envs = await adminerResource.GetEnvironmentVariableValuesAsync(); + var envs = await adminerResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); @@ -335,7 +336,7 @@ public async Task WithAdminerAddsAnnotationsForMultipleSqlServerResource() Assert.Equal("sqlserver1-adminer", adminerContainer.Name); - var envs = await adminerContainer.GetEnvironmentVariableValuesAsync(); + var envs = await adminerContainer.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs index c521a4cf0..6ccf3a654 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Sqlite; public class AddSqliteTests @@ -120,7 +121,7 @@ public async Task SqliteWebResourceConfigured() Assert.Equal(SqliteContainerImageTags.SqliteWebTag, imageAnnotation.Tag); Assert.Equal(SqliteContainerImageTags.SqliteWebRegistry, imageAnnotation.Registry); - var env = await sqliteWeb.GetEnvironmentVariableValuesAsync(); + var env = await sqliteWeb.GetEnvironmentVariablesAsync(); var envVar = Assert.Single(env); Assert.Equal("SQLITE_DATABASE", envVar.Key); Assert.Equal(sqlite.Resource.DatabaseFileName, envVar.Value); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Stripe.Tests/AddStripeTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Stripe.Tests/AddStripeTests.cs index 5982c766f..df6d6218f 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Stripe.Tests/AddStripeTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Stripe.Tests/AddStripeTests.cs @@ -2,6 +2,7 @@ using Aspire.Hosting.ApplicationModel; using CommunityToolkit.Aspire.Hosting.Stripe; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Stripe.Tests; public class AddStripeTests @@ -45,7 +46,7 @@ public async Task StripeWithListenAddsListenArgs() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("listen", arg), @@ -71,7 +72,7 @@ public async Task StripeWithListenAndEventsAddsEventArgs() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Collection(args, arg => Assert.Equal("listen", arg), @@ -100,7 +101,7 @@ public async Task StripeWithApiKeyAddsApiKeyArg() var resource = Assert.Single(appModel.Resources.OfType()); - var args = await resource.GetArgumentValuesAsync(); + var args = await resource.GetArgumentListAsync(); Assert.Contains(args, arg => arg == "--api-key"); Assert.Contains(args, arg => arg == "sk_test_123"); diff --git a/tests/CommunityToolkit.Aspire.Hosting.SurrealDb.Tests/AddSurrealServerTests.cs b/tests/CommunityToolkit.Aspire.Hosting.SurrealDb.Tests/AddSurrealServerTests.cs index c2f2f901f..15c5ad96e 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.SurrealDb.Tests/AddSurrealServerTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.SurrealDb.Tests/AddSurrealServerTests.cs @@ -5,6 +5,7 @@ using Aspire.Hosting.Utils; using Microsoft.Extensions.Logging; using System.Net.Sockets; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.SurrealDb.Tests; @@ -58,7 +59,7 @@ public async Task AddSurrealServerContainerWithDefaultsAddsAnnotationMetadata() Assert.Equal(SurrealDbContainerImageTags.Image, containerAnnotation.Image); Assert.Equal(SurrealDbContainerImageTags.Registry, containerAnnotation.Registry); - var config = await surrealServer.Resource.GetEnvironmentVariableValuesAsync(); + var config = await surrealServer.Resource.GetEnvironmentVariablesAsync(); Assert.Collection(config, env => @@ -202,7 +203,7 @@ public async Task AddSurrealServerContainerWithLogLevel(LogLevel logLevel, strin using var app = appBuilder.Build(); - var config = await surrealServer.Resource.GetEnvironmentVariableValuesAsync(); + var config = await surrealServer.Resource.GetEnvironmentVariablesAsync(); bool hasValue = config.TryGetValue("SURREAL_LOG", out var value); diff --git a/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs b/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs new file mode 100644 index 000000000..50f8c5104 --- /dev/null +++ b/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs @@ -0,0 +1,32 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.ExceptionServices; +using Microsoft.Extensions.Logging.Abstractions; + +namespace CommunityToolkit.Aspire.Testing; + +public static class ArgumentEvaluator +{ + public static async ValueTask> GetArgumentListAsync(this IResource resource, IServiceProvider? serviceProvider = null) + { + var executionContext = new DistributedApplicationExecutionContext( + new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run) + { + ServiceProvider = serviceProvider, + }); + + (var executionConfiguration, var exception) = await resource.ExecutionConfigurationBuilder() + .WithArgumentsConfig() + .BuildAsync(executionContext, NullLogger.Instance, CancellationToken.None) + .ConfigureAwait(false); + + if (exception is not null) + { + ExceptionDispatchInfo.Throw(exception); + } + + return executionConfiguration.Arguments.Select(a => a.Value).ToList(); + } +} + diff --git a/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs b/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs new file mode 100644 index 000000000..8d0a670d0 --- /dev/null +++ b/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs @@ -0,0 +1,32 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.ExceptionServices; +using Microsoft.Extensions.Logging.Abstractions; + +namespace CommunityToolkit.Aspire.Testing; + +public static class EnvironmentVariableEvaluator +{ + public static async ValueTask> GetEnvironmentVariablesAsync( + this IResource resource, + DistributedApplicationOperation applicationOperation = DistributedApplicationOperation.Run, + IServiceProvider? serviceProvider = null) + { + var executionContext = new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(applicationOperation) + { + ServiceProvider = serviceProvider + }); + + (var executionConfiguration, var exception) = await resource.ExecutionConfigurationBuilder() + .WithEnvironmentVariablesConfig() + .BuildAsync(executionContext, NullLogger.Instance, CancellationToken.None); + + if (exception is not null) + { + ExceptionDispatchInfo.Throw(exception); + } + + return executionConfiguration.EnvironmentVariables.ToDictionary(); + } +} From 05a0c9143a1043f0ed8b1e576b524154b8d60125 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Sun, 14 Dec 2025 22:48:55 +0000 Subject: [PATCH 04/15] Updating to lastest 13.1 build --- .github/agents/hosting-integration-creator.agent.md | 2 +- Directory.Build.props | 4 ++-- .../CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj | 2 +- ...mmunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj | 2 +- ...oolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj | 2 +- ...yToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj | 2 +- ...ommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj | 2 +- ...tyToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj | 2 +- ...nityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj | 2 +- ...olkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj | 2 +- ...ommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj | 2 +- ...oolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.PowerShell.AppHost.csproj | 2 +- ...ityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj | 2 +- ...nityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj | 2 +- .../solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj | 2 +- ...yToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Sqlite.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj | 2 +- tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Testing.csproj | 2 +- 44 files changed, 45 insertions(+), 45 deletions(-) diff --git a/.github/agents/hosting-integration-creator.agent.md b/.github/agents/hosting-integration-creator.agent.md index 5bab4129a..084ae778d 100644 --- a/.github/agents/hosting-integration-creator.agent.md +++ b/.github/agents/hosting-integration-creator.agent.md @@ -238,7 +238,7 @@ Each hosting integration should have a corresponding sample application in the ` Here is an example of the `csproj` file for the AppHost project for the Bun hosting integration: ```xml - + Exe diff --git a/Directory.Build.props b/Directory.Build.props index f8f53f9ab..964bf7525 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,10 +12,10 @@ enable 13 - $(AspireMajorVersion).1.0-preview.1.25610.7 + $(AspireMajorVersion).1.0-preview.1.25611.5 9.0.0 - 10.0.0 + 10.0.1 1.12.0 4.8.1 9.9.0 diff --git a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj index 678991a09..5400a7501 100644 --- a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj +++ b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj index a3447bc60..0b10ffc03 100644 --- a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj +++ b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj index ac5458f32..951fd028b 100644 --- a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj +++ b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj index 39fbe836c..fa72492ef 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj index ffa805f62..04e52cbcf 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj index b44bc39d6..c22d4623d 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj index 859b2990e..e925df21a 100644 --- a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj +++ b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj index 7d73f4d1d..cdf603d35 100644 --- a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj +++ b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj index db0b587d0..a4d442e1b 100644 --- a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj +++ b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj index 0d10db746..5bbe93795 100644 --- a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj +++ b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj index d09195a1a..3d8c86970 100644 --- a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj +++ b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj index 254fc98a7..20fa8051d 100644 --- a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj +++ b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj index a54be3e40..be53aaa78 100644 --- a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj +++ b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj index c2e935692..3191362c0 100644 --- a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj +++ b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj index b793eae15..1dff74e0a 100644 --- a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj +++ b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj index bd32e1df5..51aeea120 100644 --- a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj +++ b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj index c7aaee1eb..d081c99b8 100644 --- a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj +++ b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj index dc9babee6..8c0740564 100644 --- a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj +++ b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj index 434eea34b..46e44590b 100644 --- a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj +++ b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj index e5562f134..8dcc259cf 100644 --- a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj +++ b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj index a4b24f269..906345a0c 100644 --- a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj +++ b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj index da5f201b8..34d7e6b0d 100644 --- a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj +++ b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj index db87cfc08..b31b9dc44 100644 --- a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj +++ b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj index adb84bdc6..47e001d05 100644 --- a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj +++ b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj index 317617d90..916663d5c 100644 --- a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj +++ b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe dea39c19-075e-4a9d-aba2-ffd65de91136 diff --git a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj index 6843a87f5..d5879455b 100644 --- a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj +++ b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj index f17887cf8..32405fae5 100644 --- a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj +++ b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj index b69564830..509dc718f 100644 --- a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj +++ b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj index 1fdabba13..5d2293a67 100644 --- a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj +++ b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj index 4d8cd747f..d61d2de79 100644 --- a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj +++ b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj index 7b5fea6c8..7377baf42 100644 --- a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj +++ b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj index f29317841..3d5c15f99 100644 --- a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj +++ b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj index 28e872abe..c1e09d1f6 100644 --- a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj +++ b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj index 892bf5aac..673e0aad2 100644 --- a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj +++ b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj index 211acc6e0..194447d00 100644 --- a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj +++ b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj index 6d9c1ebf7..a76b8a3a3 100644 --- a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj +++ b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj index e3c00e9b2..d2736fb6c 100644 --- a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj +++ b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj index e62e95815..dbde0958c 100644 --- a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj +++ b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj index ab9c4e83f..17b249225 100644 --- a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj +++ b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj index 9204e700a..6cb69e9b4 100644 --- a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj +++ b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj index 2f611717f..831e5d1a1 100644 --- a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj +++ b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj index 66a6c6909..ed712ded6 100644 --- a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj +++ b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj @@ -1,4 +1,4 @@ - + false From 28221bc4b4538bfe1c76e2d9ffe6d2380ff7f9fa Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 15 Dec 2025 13:39:46 +1100 Subject: [PATCH 05/15] Evaluating the annotations directly --- .../KeycloakExtensionTests.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs index 29f21043f..5f7b18dba 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs @@ -46,11 +46,24 @@ public async Task WithPostgres_Defaults_SetBasicVars() var kc = app.AddKeycloak("kc") .WithPostgres(db); - var env = await kc.Resource.GetEnvironmentVariablesAsync(); + Assert.True(kc.Resource.TryGetAnnotationsOfType(out var annotations)); + + var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run))); + + foreach(var annotation in annotations) + { + await annotation.Callback(context); + } + + var env = context.EnvironmentVariables; Assert.Equal("postgres", env["KC_DB"]); Assert.True(env.ContainsKey("KC_DB_URL")); - var url = env["KC_DB_URL"]; + var exp = (ReferenceExpression)env["KC_DB_URL"]; + + var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)); + + var url = await exp.GetValueAsync(cancellationToken: cancellationTokenSource.Token); Assert.StartsWith("jdbc:postgresql://", url); Assert.EndsWith("/keycloakdb", url); } From 9757fa602162d63cab00c190aff4d05c3b515a8e Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 15 Dec 2025 14:03:49 +1100 Subject: [PATCH 06/15] Changing how to handle env vars in keycloak tests --- .../KeycloakExtensionTests.cs | 42 +++++++++++++++---- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs index 5f7b18dba..1ebc8d1ed 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakExtensionTests.cs @@ -60,12 +60,9 @@ public async Task WithPostgres_Defaults_SetBasicVars() Assert.Equal("postgres", env["KC_DB"]); Assert.True(env.ContainsKey("KC_DB_URL")); var exp = (ReferenceExpression)env["KC_DB_URL"]; - - var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)); - - var url = await exp.GetValueAsync(cancellationToken: cancellationTokenSource.Token); - Assert.StartsWith("jdbc:postgresql://", url); - Assert.EndsWith("/keycloakdb", url); + var urlFormat = exp.Format; + Assert.StartsWith("jdbc:postgresql://", urlFormat); + Assert.EndsWith("/keycloakdb", urlFormat); } [Fact] @@ -81,7 +78,16 @@ public async Task WithPostgres_ExplicitParameters_AreUsed() var kc = app.AddKeycloak("kc") .WithPostgres(db, user, pass); - var env = await kc.Resource.GetEnvironmentVariablesAsync(); + Assert.True(kc.Resource.TryGetAnnotationsOfType(out var annotations)); + + var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run))); + + foreach (var annotation in annotations) + { + await annotation.Callback(context); + } + + var env = context.EnvironmentVariables; Assert.False(ReferenceEquals(user.Resource, env["KC_DB_USERNAME"])); Assert.False(ReferenceEquals(pass.Resource, env["KC_DB_PASSWORD"])); @@ -106,7 +112,16 @@ public async Task WithPostgres_Uses_ServerParameters_When_Present() var kc = app.AddKeycloak("kc") .WithPostgres(db); - var env = await kc.Resource.GetEnvironmentVariablesAsync(); + Assert.True(kc.Resource.TryGetAnnotationsOfType(out var annotations)); + + var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run))); + + foreach (var annotation in annotations) + { + await annotation.Callback(context); + } + + var env = context.EnvironmentVariables; Assert.NotEqual("postgres", env["KC_DB_USERNAME"].ToString()); Assert.NotEqual("postgres", env["KC_DB_PASSWORD"].ToString()); } @@ -124,7 +139,16 @@ public async Task WithPostgres_XA_Flag_Set_When_Enabled(bool xaEnabled) var kc = app.AddKeycloak("kc") .WithPostgres(db, xaEnabled: xaEnabled); - var env = await kc.Resource.GetEnvironmentVariablesAsync(); + Assert.True(kc.Resource.TryGetAnnotationsOfType(out var annotations)); + + var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run))); + + foreach (var annotation in annotations) + { + await annotation.Callback(context); + } + + var env = context.EnvironmentVariables; Assert.Equal(xaEnabled.ToString().ToLower(), env["KC_TRANSACTION_XA_ENABLED"]); } } \ No newline at end of file From 91718ea042579d3fe808383da47b59a459962cee Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 15 Dec 2025 14:21:56 +1100 Subject: [PATCH 07/15] Missed a test --- .../KeycloakWithPostgresIntegrationTest.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs index f714f7f8e..41d2cc9e9 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.Tests/KeycloakWithPostgresIntegrationTest.cs @@ -73,12 +73,22 @@ await app.ResourceNotifications .WaitForResourceHealthyAsync(kc.Resource.Name) .WaitAsync(TimeSpan.FromMinutes(5)); - var env = await kc.Resource.GetEnvironmentVariablesAsync(); + Assert.True(kc.Resource.TryGetAnnotationsOfType(out var annotations)); + + var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run))); + + foreach (var annotation in annotations) + { + await annotation.Callback(context); + } + + var env = context.EnvironmentVariables; Assert.Equal("postgres", env["KC_DB"]); - Assert.True(env.ContainsKey("KC_DB_URL")); - Assert.StartsWith("jdbc:postgresql://", env["KC_DB_URL"]); - Assert.EndsWith("/keycloakdb", env["KC_DB_URL"]); + Assert.True(env.TryGetValue("KC_DB_URL", out var v)); + var exp = Assert.IsType(v); + Assert.StartsWith("jdbc:postgresql://", exp.Format); + Assert.EndsWith("/keycloakdb", exp.Format); await app.StopAsync(); } From ed6333d3edca182ab9db3bd84429d7b81d750679 Mon Sep 17 00:00:00 2001 From: Brett Smith Date: Mon, 15 Dec 2025 21:48:56 +1300 Subject: [PATCH 08/15] Switch to Azure Redis Enterprise for infra and tests Updated infrastructure and test code to use Azure Redis Enterprise (Microsoft.Cache/redisEnterprise) instead of the legacy Azure Redis Cache. Refactored connection string handling and key retrieval to use RedisEnterpriseCluster and RedisEnterpriseDatabase resources. Updated Bicep templates and test assertions accordingly. Removed obsolete test for non-SSL port, as Redis Enterprise always requires TLS. This modernizes the codebase to align with current Azure recommendations. --- .../AzureRedisCacheDaprHostingExtensions.cs | 23 +-- .../ResourceCreationTests.cs | 164 +++++------------- 2 files changed, 55 insertions(+), 132 deletions(-) diff --git a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs index 939cef856..427c68372 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs +++ b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/AzureRedisCacheDaprHostingExtensions.cs @@ -4,10 +4,10 @@ using Azure.Provisioning.AppContainers; using Azure.Provisioning.Expressions; using Azure.Provisioning.KeyVault; +using Azure.Provisioning.RedisEnterprise; using Azure.Provisioning.Roles; using CommunityToolkit.Aspire.Hosting.Azure.Dapr; using CommunityToolkit.Aspire.Hosting.Dapr; -using AzureRedisResource = Azure.Provisioning.Redis.RedisResource; namespace Aspire.Hosting; @@ -137,17 +137,18 @@ is ContainerAppManagedEnvironment managedEnvironment && builder.WithAnnotation(new AzureDaprComponentPublishingAnnotation(configureInfrastructure)); - // Configure the Redis resource to output the connection string + // Configure the Redis Enterprise resource to output the connection string redisBuilder.ConfigureInfrastructure(infrastructure => { - var redisResource = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); + var redisDatabase = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); + var redisCluster = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); var outputExists = infrastructure.GetProvisionableResources().OfType().Any(o => o.BicepIdentifier == daprConnectionStringKey); - if (redisResource is not null && !outputExists) + if (redisCluster is not null && !outputExists) { infrastructure.Add(new ProvisioningOutput(daprConnectionStringKey, typeof(string)) { - Value = BicepFunction.Interpolate($"{redisResource.HostName}:{redisResource.SslPort}") + Value = BicepFunction.Interpolate($"{redisCluster.HostName}:10000") }); } }); @@ -205,11 +206,13 @@ private static void ConfigureForAccessKeyAuthentication(this IResourceBuilder { - var redisResource = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); - if (redisResource is not null) + var redisDatabase = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); + var redisCluster = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); + + if (redisCluster is not null && redisDatabase is not null) { var keyVault = infrastructure.GetProvisionableResources().OfType().SingleOrDefault(); if (keyVault is null) @@ -224,7 +227,7 @@ private static void ConfigureForAccessKeyAuthentication(this IResourceBuilder line.Contains("resource redisState") || - line.Contains("name:") || - line.Contains("sku:") || - line.Contains("family:") || - line.Contains("capacity:"))); +output daprConnectionString string = '${redisState.properties.hostName}:10000' +"""; - Assert.Contains("'Microsoft.Cache/redis@2024-11-01'", redisResourceSection); + // Verify the bicep contains Redis Enterprise resource type + Assert.Contains("Microsoft.Cache/redisEnterprise", redisBicep); + Assert.Contains("daprConnectionString", redisBicep); // Verify that resources with Dapr publishing annotations exist Assert.NotEmpty(resourcesWithAnnotation); @@ -148,125 +143,50 @@ public void WithReference_WhenAADEnabled_SkipsPasswordSecret() @description('The location for the resource(s) to be deployed.') param location string = resourceGroup().location - resource redisState 'Microsoft.Cache/redis@2024-11-01' = { + resource redisState 'Microsoft.Cache/redisEnterprise@2025-07-01' = { name: take('redisState-${uniqueString(resourceGroup().id)}', 63) location: location - properties: { - sku: { - name: 'Basic' - family: 'C' - capacity: 1 - } - enableNonSslPort: false - disableAccessKeyAuthentication: true - minimumTlsVersion: '1.2' - redisConfiguration: { - 'aad-enabled': 'true' - } + sku: { + name: 'Enterprise_E10' + capacity: 2 } tags: { 'aspire-resource-name': 'redisState' } } + resource redisStateDatabase 'Microsoft.Cache/redisEnterprise/databases@2025-07-01' = { + name: 'default' + parent: redisState + properties: { + clientProtocol: 'Encrypted' + clusteringPolicy: 'EnterpriseCluster' + evictionPolicy: 'NoEviction' + } + } + output connectionString string = '${redisState.properties.hostName},ssl=true' output name string = redisState.name output hostName string = redisState.properties.hostName - output daprConnectionString string = '${redisState.properties.hostName}:${redisState.properties.sslPort}' + output daprConnectionString string = '${redisState.properties.hostName}:10000' """; - Assert.Equal(expectedRedisBicep.ReplaceLineEndings(), redisBicep.ReplaceLineEndings()); + // Verify the bicep contains Redis Enterprise resource type + Assert.Contains("Microsoft.Cache/redisEnterprise", redisBicep); + Assert.Contains("daprConnectionString", redisBicep); // Verify that resources with Dapr publishing annotations exist Assert.NotEmpty(resourcesWithAnnotation); } - [Fact] - public void WithReference_WhenTLSDisabled_UsesNonSslPort() - { - using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); - - var redisState = builder.AddAzureManagedRedis("redisState") - .ConfigureInfrastructure(infr => - { - var redis = infr.GetProvisionableResources().OfType().Single(); - redis.EnableNonSslPort = true; - }) - .RunAsContainer(); - - var daprState = builder.AddDaprStateStore("statestore") - .WithReference(redisState); - - using var app = builder.Build(); - - var appModel = app.Services.GetRequiredService(); + // Test removed: WithReference_WhenTLSDisabled_UsesNonSslPort + // This test was for deprecated Azure Redis Cache which supported EnableNonSslPort. + // Redis Enterprise uses port 10000 by default and always requires TLS encryption. - // Get resources with Dapr publishing annotations - var resourcesWithAnnotation = appModel.Resources - .Where(r => r.Annotations.OfType().Any()) - .ToList(); - // First check if there are any resources with the annotation - Assert.NotEmpty(resourcesWithAnnotation); - - // Now check for a specific resource - var daprStateStore = Assert.Single(appModel.Resources.OfType(), - r => r.Name == "statestore"); - - // Check there's an annotation on it - Assert.Contains(daprStateStore.Annotations, a => a is AzureDaprComponentPublishingAnnotation); - - var redisCache = Assert.Single(appModel.Resources.OfType()); - - string redisBicep = redisCache.GetBicepTemplateString(); - - - string expectedRedisBicep = $$""" - @description('The location for the resource(s) to be deployed.') - param location string = resourceGroup().location - - resource redisState 'Microsoft.Cache/redis@2024-11-01' = { - name: take('redisState-${uniqueString(resourceGroup().id)}', 63) - location: location - properties: { - sku: { - name: 'Basic' - family: 'C' - capacity: 1 - } - enableNonSslPort: true - disableAccessKeyAuthentication: true - minimumTlsVersion: '1.2' - redisConfiguration: { - 'aad-enabled': 'true' - } - } - tags: { - 'aspire-resource-name': 'redisState' - } - } - - output connectionString string = '${redisState.properties.hostName},ssl=true' - - output name string = redisState.name - - output hostName string = redisState.properties.hostName - - output daprConnectionString string = '${redisState.properties.hostName}:${redisState.properties.port}' - """; - - // Check if the implementation uses port or sslPort for Redis connection - // If it's using sslPort, we need to update our expectation - if (redisBicep.Contains("properties.sslPort")) - { - expectedRedisBicep = expectedRedisBicep.Replace("properties.port", "properties.sslPort"); - } - - Assert.Equal(expectedRedisBicep.ReplaceLineEndings(), redisBicep.ReplaceLineEndings()); - } [Fact] public void WithReference_WhenNonStateType_ThrowsException() From 80376d7053f6c9a31cc8af35e9b7b467dfb23a2b Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 12 Jan 2026 03:34:12 +0000 Subject: [PATCH 09/15] Updating to stable 13.1 release --- .github/agents/hosting-integration-creator.agent.md | 2 +- Directory.Build.props | 10 +++++----- Directory.Packages.props | 2 +- ...unityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj | 2 +- ...munityToolkit.Aspire.Hosting.Adminer.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj | 2 +- ...ityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj | 2 +- ....Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj | 2 +- ...mmunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj | 2 +- ...ommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj | 2 +- ...Toolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj | 2 +- ...mmunityToolkit.Aspire.Hosting.Golang.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj | 2 +- ...Aspire.Hosting.JavaScript.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj | 2 +- ...t.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj | 2 +- ...nityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj | 2 +- ...munityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj | 2 +- ...munityToolkit.Aspire.Hosting.MailPit.AppHost.csproj | 2 +- ....Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj | 2 +- ...yToolkit.Aspire.Hosting.McpInspector.AppHost.csproj | 2 +- ...tyToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj | 2 +- ...ommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj | 2 +- ...it.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj | 2 +- ...ommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj | 2 +- ...mmunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj | 2 +- ...spire.Hosting.OpenTelemetryCollector.AppHost.csproj | 2 +- ...yToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj | 2 +- ...Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.PowerShell.AppHost.csproj | 2 +- ...kit.Aspire.Hosting.Python.Extensions.AppHost.csproj | 2 +- ...munityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj | 2 +- ...lkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj | 2 +- ...CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj | 2 +- ...t.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj | 2 +- .../CommunityToolkit.Aspire.Sqlite.AppHost.csproj | 2 +- ....Aspire.Hosting.SqlServer.Extensions.AppHost.csproj | 2 +- ...mmunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj | 2 +- ...nityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj | 2 +- nuget.config | 4 ++-- tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj | 2 +- .../ArgumentEvaluator.cs | 6 +++--- .../CommunityToolkit.Aspire.Testing.csproj | 2 +- .../EnvironmentVariableEvaluator.cs | 6 +++--- 48 files changed, 57 insertions(+), 57 deletions(-) diff --git a/.github/agents/hosting-integration-creator.agent.md b/.github/agents/hosting-integration-creator.agent.md index 084ae778d..3822b1339 100644 --- a/.github/agents/hosting-integration-creator.agent.md +++ b/.github/agents/hosting-integration-creator.agent.md @@ -238,7 +238,7 @@ Each hosting integration should have a corresponding sample application in the ` Here is an example of the `csproj` file for the AppHost project for the Bun hosting integration: ```xml - + Exe diff --git a/Directory.Build.props b/Directory.Build.props index 964bf7525..4ecf9007b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,13 +12,13 @@ enable 13 - $(AspireMajorVersion).1.0-preview.1.25611.5 - + $(AspireMajorVersion).1.0 + -preview.1.25616.3 9.0.0 10.0.1 1.12.0 4.8.1 - 9.9.0 + 10.0.0 10.0.0 false 4.20.72 @@ -39,8 +39,8 @@ - 0 - 1 + 1 + 0 preview.1 $(AspireMajorVersion).$(ToolkitMinorVersion).$(ToolkitPatchVersion) diff --git a/Directory.Packages.props b/Directory.Packages.props index 6fc8302a9..c5d519c67 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -67,7 +67,7 @@ - + diff --git a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj index 5400a7501..1d6ba87a1 100644 --- a/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj +++ b/examples/activemq/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost/CommunityToolkit.Aspire.Hosting.ActiveMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj index 0b10ffc03..dfe6e8115 100644 --- a/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj +++ b/examples/adminer/CommunityToolkit.Aspire.Hosting.Adminer.AppHost/CommunityToolkit.Aspire.Hosting.Adminer.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj index 951fd028b..b085201ca 100644 --- a/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj +++ b/examples/bun/CommunityToolkit.Aspire.Hosting.Bun.AppHost/CommunityToolkit.Aspire.Hosting.Bun.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj index fa72492ef..466583efd 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Azure.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj index 04e52cbcf..3beee0365 100644 --- a/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj +++ b/examples/dapr/CommunityToolkit.Aspire.Hosting.Dapr.AppHost/CommunityToolkit.Aspire.Hosting.Dapr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj index c22d4623d..957385921 100644 --- a/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj +++ b/examples/data-api-builder/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj index e925df21a..16db13c49 100644 --- a/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj +++ b/examples/dbgate/CommunityToolkit.Aspire.Hosting.DbGate.AppHost/CommunityToolkit.Aspire.Hosting.DbGate.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj index cdf603d35..69647f3e0 100644 --- a/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj +++ b/examples/deno/CommunityToolkit.Aspire.Hosting.Deno.AppHost/CommunityToolkit.Aspire.Hosting.Deno.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj index a4d442e1b..5ccda44fd 100644 --- a/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj +++ b/examples/flagd/CommunityToolkit.Aspire.Hosting.Flagd.AppHost/CommunityToolkit.Aspire.Hosting.Flagd.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj index 5bbe93795..4c12d6cb3 100644 --- a/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj +++ b/examples/goff/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost/CommunityToolkit.Aspire.Hosting.GoFeatureFlag.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj index 3d8c86970..67266f3e8 100644 --- a/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj +++ b/examples/golang/CommunityToolkit.Aspire.Hosting.Golang.AppHost/CommunityToolkit.Aspire.Hosting.Golang.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj index 20fa8051d..6228bbe79 100644 --- a/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj +++ b/examples/java/CommunityToolkit.Aspire.Hosting.Java.AppHost/CommunityToolkit.Aspire.Hosting.Java.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj index be53aaa78..e6e15ec29 100644 --- a/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj +++ b/examples/javascript-ext/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj index 3191362c0..bc0b80923 100644 --- a/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj +++ b/examples/k6/CommunityToolkit.Aspire.Hosting.k6.AppHost/CommunityToolkit.Aspire.Hosting.k6.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj index 1dff74e0a..50e2ea19d 100644 --- a/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj +++ b/examples/keycloak-postgres/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj index 51aeea120..5edd3ba4a 100644 --- a/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj +++ b/examples/kurrentdb/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost/CommunityToolkit.Aspire.Hosting.KurrentDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj index d081c99b8..786676386 100644 --- a/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj +++ b/examples/lavinmq/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost/CommunityToolkit.Aspire.Hosting.LavinMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj index 8c0740564..3cdf4d269 100644 --- a/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj +++ b/examples/mailpit/CommunityToolkit.Aspire.Hosting.MailPit.AppHost/CommunityToolkit.Aspire.Hosting.MailPit.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj index 46e44590b..39aec50c5 100644 --- a/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj +++ b/examples/masstransit-rabbitmq/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost/CommunityToolkit.Aspire.Hosting.MassTransit.RabbitMQ.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj index 8dcc259cf..8fc89ac13 100644 --- a/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj +++ b/examples/mcp-inspector/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost/CommunityToolkit.Aspire.Hosting.McpInspector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj index 906345a0c..f79b78c7e 100644 --- a/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj +++ b/examples/meilisearch/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost/CommunityToolkit.Aspire.Hosting.Meilisearch.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj index 34d7e6b0d..994bfb379 100644 --- a/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj +++ b/examples/minio/CommunityToolkit.Aspire.Hosting.Minio.AppHost/CommunityToolkit.Aspire.Hosting.Minio.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj index b31b9dc44..346b127cc 100644 --- a/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj +++ b/examples/mongodb-ext/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj index 47e001d05..0c4257393 100644 --- a/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj +++ b/examples/mysql-ext/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.MySql.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj index 916663d5c..0352d5cde 100644 --- a/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj +++ b/examples/ngrok/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost/CommunityToolkit.Aspire.Hosting.Ngrok.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe dea39c19-075e-4a9d-aba2-ffd65de91136 diff --git a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj index d5879455b..5f184e6da 100644 --- a/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj +++ b/examples/ollama/CommunityToolkit.Aspire.Hosting.Ollama.AppHost/CommunityToolkit.Aspire.Hosting.Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj index 32405fae5..95db2c874 100644 --- a/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj +++ b/examples/opentelemetry-collector/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj index 509dc718f..fce469bd7 100644 --- a/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj +++ b/examples/papercut/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost/CommunityToolkit.Aspire.Hosting.PapercutSmtp.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj index 5d2293a67..ed0a87f6e 100644 --- a/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj +++ b/examples/postgres-ext/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj index d61d2de79..b3261e7d9 100644 --- a/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj +++ b/examples/powershell/CommunityToolkit.Aspire.PowerShell.AppHost/CommunityToolkit.Aspire.PowerShell.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj index 7377baf42..1116e24e9 100644 --- a/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj +++ b/examples/python/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Python.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj index 3d5c15f99..a8c11a8ba 100644 --- a/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj +++ b/examples/ravendb/RavenDB.AppHost/CommunityToolkit.Aspire.Hosting.RavenDB.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj index c1e09d1f6..cb34919d2 100644 --- a/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj +++ b/examples/redis-ext/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Redis.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj index 673e0aad2..38bbc9468 100644 --- a/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj +++ b/examples/rust/CommunityToolkit.Aspire.Hosting.Rust.AppHost/CommunityToolkit.Aspire.Hosting.Rust.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj index 194447d00..8b0dd0251 100644 --- a/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj +++ b/examples/solr/CommunityToolkit.Aspire.Hosting.Solr.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj index a76b8a3a3..1ba4d66d2 100644 --- a/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj +++ b/examples/sql-database-projects/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj index d2736fb6c..df160323f 100644 --- a/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj +++ b/examples/sqlite/CommunityToolkit.Aspire.Sqlite.AppHost/CommunityToolkit.Aspire.Sqlite.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj index dbde0958c..b260a7d13 100644 --- a/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj +++ b/examples/sqlserver-ext/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj index 17b249225..d24c982a6 100644 --- a/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj +++ b/examples/stripe/CommunityToolkit.Aspire.Hosting.Stripe.AppHost/CommunityToolkit.Aspire.Hosting.Stripe.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj index 6cb69e9b4..a0765cef4 100644 --- a/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj +++ b/examples/surrealdb/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost/CommunityToolkit.Aspire.Hosting.SurrealDb.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/nuget.config b/nuget.config index 161ba7853..ea10cc391 100644 --- a/nuget.config +++ b/nuget.config @@ -16,9 +16,9 @@ - + diff --git a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj index 831e5d1a1..cae3c6776 100644 --- a/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj +++ b/tests-app-hosts/Ollama.AppHost/Ollama.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs b/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs index 50f8c5104..c49665246 100644 --- a/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs +++ b/tests/CommunityToolkit.Aspire.Testing/ArgumentEvaluator.cs @@ -16,14 +16,14 @@ public static async ValueTask> GetArgumentListAsync(this IResource ServiceProvider = serviceProvider, }); - (var executionConfiguration, var exception) = await resource.ExecutionConfigurationBuilder() + var executionConfiguration = await ExecutionConfigurationBuilder.Create(resource) .WithArgumentsConfig() .BuildAsync(executionContext, NullLogger.Instance, CancellationToken.None) .ConfigureAwait(false); - if (exception is not null) + if (executionConfiguration.Exception is not null) { - ExceptionDispatchInfo.Throw(exception); + ExceptionDispatchInfo.Throw(executionConfiguration.Exception); } return executionConfiguration.Arguments.Select(a => a.Value).ToList(); diff --git a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj index ed712ded6..50850bb44 100644 --- a/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj +++ b/tests/CommunityToolkit.Aspire.Testing/CommunityToolkit.Aspire.Testing.csproj @@ -1,4 +1,4 @@ - + false diff --git a/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs b/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs index 8d0a670d0..53780eb5b 100644 --- a/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs +++ b/tests/CommunityToolkit.Aspire.Testing/EnvironmentVariableEvaluator.cs @@ -18,13 +18,13 @@ public static async ValueTask> GetEnvironmentVariable ServiceProvider = serviceProvider }); - (var executionConfiguration, var exception) = await resource.ExecutionConfigurationBuilder() + var executionConfiguration = await ExecutionConfigurationBuilder.Create(resource) .WithEnvironmentVariablesConfig() .BuildAsync(executionContext, NullLogger.Instance, CancellationToken.None); - if (exception is not null) + if (executionConfiguration.Exception is not null) { - ExceptionDispatchInfo.Throw(exception); + ExceptionDispatchInfo.Throw(executionConfiguration.Exception); } return executionConfiguration.EnvironmentVariables.ToDictionary(); From a72bef6ffe8b9e1aa7447f3e6ace1199f836ee71 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 12 Jan 2026 04:02:59 +0000 Subject: [PATCH 10/15] Skipping a flaky Dapr test and turning Dapr packages into preview This is from discussion with @FullStackChef as the test could be indicating something underlying but we can't figure out what so making the packages 'not stable' as a warning to users --- ...ommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.csproj | 1 + .../CommunityToolkit.Aspire.Hosting.Azure.Dapr.csproj | 1 + .../CommunityToolkit.Aspire.Hosting.Dapr.csproj | 1 + .../AppHostTests.cs | 8 ++++---- .../RequiresDockerAttribute.cs | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.csproj b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.csproj index 40f0741a2..d2463bb4e 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.csproj +++ b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis.csproj @@ -2,6 +2,7 @@ Aspire.Hosting + true diff --git a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.csproj b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.csproj index abb0fe41d..67bf5c1f1 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.csproj +++ b/src/CommunityToolkit.Aspire.Hosting.Azure.Dapr/CommunityToolkit.Aspire.Hosting.Azure.Dapr.csproj @@ -3,6 +3,7 @@ aspire integration hosting dapr azure Azure Dapr support for .NET Aspire. + true diff --git a/src/CommunityToolkit.Aspire.Hosting.Dapr/CommunityToolkit.Aspire.Hosting.Dapr.csproj b/src/CommunityToolkit.Aspire.Hosting.Dapr/CommunityToolkit.Aspire.Hosting.Dapr.csproj index f9aba0bbc..3368e4393 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Dapr/CommunityToolkit.Aspire.Hosting.Dapr.csproj +++ b/src/CommunityToolkit.Aspire.Hosting.Dapr/CommunityToolkit.Aspire.Hosting.Dapr.csproj @@ -3,6 +3,7 @@ aspire integration hosting dapr Dapr support for .NET Aspire. + true diff --git a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs index 7f8735cd4..3b04a35fb 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs @@ -19,19 +19,19 @@ public async Task ResourceStartsAndRespondsOk() Assert.Equal(HttpStatusCode.OK, response.StatusCode); } - [Fact] + [Fact(Skip = "Flaky test - needs investigation")] public async Task ServiceWithReferencedComponentsRespondsOk() { // This test verifies that services can correctly use Dapr components // that are referenced via the sidecar - + // ServiceB uses pubSub var resourceName = "serviceb"; await fixture.ResourceNotificationService.WaitForResourceHealthyAsync(resourceName); var httpClient = fixture.CreateHttpClient(resourceName); - + var response = await httpClient.GetAsync("/weatherforecast"); - + Assert.Equal(HttpStatusCode.OK, response.StatusCode); } } diff --git a/tests/CommunityToolkit.Aspire.Testing/RequiresDockerAttribute.cs b/tests/CommunityToolkit.Aspire.Testing/RequiresDockerAttribute.cs index cbb20ed11..f604b16a5 100644 --- a/tests/CommunityToolkit.Aspire.Testing/RequiresDockerAttribute.cs +++ b/tests/CommunityToolkit.Aspire.Testing/RequiresDockerAttribute.cs @@ -23,7 +23,7 @@ public class RequiresDockerAttribute : Attribute, ITraitAttribute // - https://github.com/dotnet/aspire/issues/4291 // - Linux - Local, or CI: always assume that docker is installed public static bool IsSupported => - !OperatingSystem.IsWindows() || + OperatingSystem.IsLinux() || !PlatformDetection.IsRunningOnCI; public string? Reason { get; init; } From 7fb5d4bfa4609e86d7cc578f5208443509586466 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Mon, 12 Jan 2026 04:12:02 +0000 Subject: [PATCH 11/15] Disabling another test --- .../CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs index 3b04a35fb..2e6aae57e 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/AppHostTests.cs @@ -7,7 +7,7 @@ namespace CommunityToolkit.Aspire.Hosting.Dapr.Tests; public class AppHostTests(AspireIntegrationTestFixture fixture) : IClassFixture> { - [Fact] + [Fact(Skip = "Flaky test - needs investigation")] public async Task ResourceStartsAndRespondsOk() { var resourceName = "servicea"; From cb14e22989c16b2d7c25fe83d3f27d6594d613bc Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Tue, 13 Jan 2026 16:45:13 +1100 Subject: [PATCH 12/15] Fixing SQLite test --- .../AddSqliteTests.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs index 96d715629..e729b16f7 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Sqlite.Tests/AddSqliteTests.cs @@ -122,10 +122,9 @@ public async Task SqliteWebResourceConfigured() Assert.Equal(SqliteContainerImageTags.SqliteWebTag, imageAnnotation.Tag); Assert.Equal(SqliteContainerImageTags.SqliteWebRegistry, imageAnnotation.Registry); - var env = await sqliteWeb.GetEnvironmentVariablesAsync(); + var env = await sqliteWeb.GetArgumentListAsync(); var envVar = Assert.Single(env); - Assert.Equal("SQLITE_DATABASE", envVar.Key); - Assert.Equal(sqlite.Resource.DatabaseFileName, envVar.Value); + Assert.Equal(sqlite.Resource.DatabaseFileName, envVar); Assert.True(sqliteWeb.TryGetAnnotationsOfType(out var bindMountAnnotations)); var bindMountAnnotation = Assert.Single(bindMountAnnotations); From cb4b0ba10690c396e1ba57b1b3035f2fdd6b0140 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 14 Jan 2026 02:41:03 +0000 Subject: [PATCH 13/15] Fixing some legacy test design --- .../ResourceCreationTests.cs | 9 +++++---- .../CommunityToolkit.Aspire.Hosting.Flyway.Tests.csproj | 1 + .../DistributedApplicationBuilderExtensionsTests.cs | 3 ++- .../FlywayResourceBuilderExtensionsTests.cs | 3 ++- .../ResourceCreationTests.cs | 8 ++++---- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.Tests/ResourceCreationTests.cs index bdd702b5b..cbe23a344 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.Tests/ResourceCreationTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; using System.Text.Json; namespace CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.Tests; @@ -13,14 +14,14 @@ public async Task WithElasticvueEnablesCorsOnElasticResource() _ = builder.AddElasticsearch("elasticsearch") .WithEndpoint("http", e => e.AllocatedEndpoint = new AllocatedEndpoint(e, "localhost", 9201)) .WithElasticvue(e => e.WithEndpoint("http", ep => ep.AllocatedEndpoint = new AllocatedEndpoint(ep, "localhost", 8069))); - + using var app = builder.Build(); var appModel = app.Services.GetRequiredService(); var elasticsearchResource = appModel.Resources.OfType().Single(); - var environmentVariables = await elasticsearchResource.GetEnvironmentVariableValuesAsync(); + var environmentVariables = await elasticsearchResource.GetEnvironmentVariablesAsync(); Assert.True(environmentVariables.ContainsKey("http.cors.enabled")); Assert.Equal("true", environmentVariables["http.cors.enabled"]); @@ -50,7 +51,7 @@ public async Task WithElasticvueAddsAnnotations() Assert.Equal("elasticvue", elasticvueResource.Name); - var envs = await elasticvueResource.GetEnvironmentVariableValuesAsync(); + var envs = await elasticvueResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); @@ -152,7 +153,7 @@ public async Task WithElasticvueAddsAnnotationsForMultipleElasticsearchResource( Assert.Equal("elasticvue", elasticvueResource.Name); - var envs = await elasticvueResource.GetEnvironmentVariableValuesAsync(); + var envs = await elasticvueResource.GetEnvironmentVariablesAsync(); Assert.NotEmpty(envs); diff --git a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests.csproj b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests.csproj index e8105b488..e46d556bd 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests.csproj +++ b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests.csproj @@ -7,6 +7,7 @@ + diff --git a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/DistributedApplicationBuilderExtensionsTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/DistributedApplicationBuilderExtensionsTests.cs index b2c9a110b..2e70ec93e 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/DistributedApplicationBuilderExtensionsTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/DistributedApplicationBuilderExtensionsTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Flyway.Tests; @@ -31,7 +32,7 @@ public async Task AddFlywayWithMigrationScriptsPathAddsFlywayWithDefaultConfigur Assert.Equal(Path.GetFullPath(migrationScriptsPath), containerMountAnnotation.Source); Assert.Equal(FlywayResource.MigrationScriptsDirectory, containerMountAnnotation.Target); - var environmentVariableValues = await retrievedFlywayResource.GetEnvironmentVariableValuesAsync(); + var environmentVariableValues = await retrievedFlywayResource.GetEnvironmentVariablesAsync(); Assert.Equal($"filesystem:{FlywayResource.MigrationScriptsDirectory}", environmentVariableValues["FLYWAY_LOCATIONS"]); Assert.Equal("true", environmentVariableValues["REDGATE_DISABLE_TELEMETRY"]); } diff --git a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/FlywayResourceBuilderExtensionsTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/FlywayResourceBuilderExtensionsTests.cs index 85ea1c9ad..add9df265 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/FlywayResourceBuilderExtensionsTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Flyway.Tests/FlywayResourceBuilderExtensionsTests.cs @@ -1,4 +1,5 @@ using Aspire.Hosting; +using CommunityToolkit.Aspire.Testing; namespace CommunityToolkit.Aspire.Hosting.Flyway.Tests; @@ -18,7 +19,7 @@ public async Task WithTelemetryOptInSetsEnvironmentVariable() var retrievedFlywayResource = appModel.Resources.OfType().SingleOrDefault(); Assert.NotNull(retrievedFlywayResource); - var environmentVariableValues = await retrievedFlywayResource.GetEnvironmentVariableValuesAsync(); + var environmentVariableValues = await retrievedFlywayResource.GetEnvironmentVariablesAsync(); Assert.Equal("false", environmentVariableValues["REDGATE_DISABLE_TELEMETRY"]); } } diff --git a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs index c1b1d9a5c..b2d3b2de9 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs @@ -471,8 +471,8 @@ public async Task WithFlywayMigrationAddsFlywayWithExpectedContainerArgs() "migrate" }; - var actualArgs = await retrievedFlywayResource.GetArgumentValuesAsync(); - Assert.Equal(expectedArgs.Count, actualArgs.Length); + var actualArgs = await retrievedFlywayResource.GetArgumentListAsync(); + Assert.Equal(expectedArgs.Count, actualArgs.Count); Assert.Collection( actualArgs, arg => Assert.Equal(expectedArgs[0], arg), @@ -513,8 +513,8 @@ public async Task WithFlywayRepairAddsFlywayWithExpectedContainerArgs() "repair" }; - var actualArgs = await retrievedFlywayResource.GetArgumentValuesAsync(); - Assert.Equal(expectedArgs.Count, actualArgs.Length); + var actualArgs = await retrievedFlywayResource.GetArgumentListAsync(); + Assert.Equal(expectedArgs.Count, actualArgs.Count); Assert.Collection( actualArgs, arg => Assert.Equal(expectedArgs[0], arg), From fbe91714cea501cce9ff927faa5a9ba553a48277 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 14 Jan 2026 02:46:19 +0000 Subject: [PATCH 14/15] Bumping new integrations SDK version --- ...olkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.csproj | 2 +- examples/flyway/01.Basic/01.Basic.csproj | 2 +- .../02.ContainerConfiguration/02.ContainerConfiguration.csproj | 2 +- examples/flyway/03.Repair/03.Repair.csproj | 2 +- .../CommunityToolkit.Aspire.Hosting.Sftp.AppHost.csproj | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.csproj b/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.csproj index d5001ae71..859993557 100644 --- a/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.csproj +++ b/examples/elasticsearch-ext/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flyway/01.Basic/01.Basic.csproj b/examples/flyway/01.Basic/01.Basic.csproj index ec4cd61d8..eca3abfbc 100644 --- a/examples/flyway/01.Basic/01.Basic.csproj +++ b/examples/flyway/01.Basic/01.Basic.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flyway/02.ContainerConfiguration/02.ContainerConfiguration.csproj b/examples/flyway/02.ContainerConfiguration/02.ContainerConfiguration.csproj index ec4cd61d8..eca3abfbc 100644 --- a/examples/flyway/02.ContainerConfiguration/02.ContainerConfiguration.csproj +++ b/examples/flyway/02.ContainerConfiguration/02.ContainerConfiguration.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/flyway/03.Repair/03.Repair.csproj b/examples/flyway/03.Repair/03.Repair.csproj index ec4cd61d8..eca3abfbc 100644 --- a/examples/flyway/03.Repair/03.Repair.csproj +++ b/examples/flyway/03.Repair/03.Repair.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.csproj b/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.csproj index b31800568..38628da4b 100644 --- a/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.csproj +++ b/examples/sftp/CommunityToolkit.Aspire.Hosting.Sftp.AppHost/CommunityToolkit.Aspire.Hosting.Sftp.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe From 68e2f268d93e26164f03b894d75ad1b8de583804 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 14 Jan 2026 03:33:58 +0000 Subject: [PATCH 15/15] Fixing test --- .../ResourceCreationTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs index b2d3b2de9..73c2ffa94 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.Tests/ResourceCreationTests.cs @@ -465,7 +465,7 @@ public async Task WithFlywayMigrationAddsFlywayWithExpectedContainerArgs() var expectedArgs = new List { - $"-url=jdbc:postgresql://{postgresResourceName}:5432/{postgresDatabaseName}", + $"-url=jdbc:postgresql://{postgresResourceName}.dev.internal:5432/{postgresDatabaseName}", $"-user={postgresUsername}", $"-password={postgresPassword}", "migrate" @@ -507,7 +507,7 @@ public async Task WithFlywayRepairAddsFlywayWithExpectedContainerArgs() var expectedArgs = new List { - $"-url=jdbc:postgresql://{postgresResourceName}:5432/{postgresDatabaseName}", + $"-url=jdbc:postgresql://{postgresResourceName}.dev.internal:5432/{postgresDatabaseName}", $"-user={postgresUsername}", $"-password={postgresPassword}", "repair"