| File: Projects\AppHostEnvironmentDefaultsTests.cs | Web Access |
| Project: src\tests\Aspire.Cli.Tests\Aspire.Cli.Tests.csproj (Aspire.Cli.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Cli.Projects; using Aspire.Hosting; namespace Aspire.Cli.Tests.Projects; public class AppHostEnvironmentDefaultsTests { [Fact] public void ApplyEffectiveEnvironment_UsesDefaultWhenNoEnvironmentVariablesAreSet() { var env = new Dictionary<string, string>(); AppHostEnvironmentDefaults.ApplyEffectiveEnvironment(env, AppHostEnvironmentDefaults.ProductionEnvironmentName); Assert.Equal("Production", env[KnownAspNetCoreConfigNames.DotNetEnvironment]); Assert.False(env.ContainsKey(KnownAspNetCoreConfigNames.Environment)); } [Fact] public void ApplyEffectiveEnvironment_DotnetEnvironmentTakesPrecedenceOverAspireEnvironment() { var env = new Dictionary<string, string> { [KnownAspNetCoreConfigNames.DotNetEnvironment] = "Production", [AppHostEnvironmentDefaults.AspireEnvironmentVariableName] = "Staging" }; AppHostEnvironmentDefaults.ApplyEffectiveEnvironment(env, AppHostEnvironmentDefaults.DevelopmentEnvironmentName); Assert.Equal("Production", env[KnownAspNetCoreConfigNames.DotNetEnvironment]); Assert.False(env.ContainsKey(KnownAspNetCoreConfigNames.Environment)); Assert.Equal("Staging", env["ASPIRE_ENVIRONMENT"]); } [Fact] public void ApplyEffectiveEnvironment_EnvironmentArgumentTakesPrecedenceOverEnvironmentVariables() { var env = new Dictionary<string, string> { [KnownAspNetCoreConfigNames.DotNetEnvironment] = "Production", [AppHostEnvironmentDefaults.AspireEnvironmentVariableName] = "Development" }; AppHostEnvironmentDefaults.ApplyEffectiveEnvironment( env, AppHostEnvironmentDefaults.DevelopmentEnvironmentName, args: ["--environment", "Staging"]); Assert.Equal("Staging", env[KnownAspNetCoreConfigNames.DotNetEnvironment]); Assert.False(env.ContainsKey(KnownAspNetCoreConfigNames.Environment)); Assert.Equal("Development", env["ASPIRE_ENVIRONMENT"]); } [Fact] public void ApplyEffectiveEnvironment_AspireEnvironmentTakesPrecedenceOverAspNetCoreEnvironment() { var env = new Dictionary<string, string> { [AppHostEnvironmentDefaults.AspireEnvironmentVariableName] = "Testing", [KnownAspNetCoreConfigNames.Environment] = "Staging" }; AppHostEnvironmentDefaults.ApplyEffectiveEnvironment(env, AppHostEnvironmentDefaults.DevelopmentEnvironmentName); Assert.Equal("Testing", env[KnownAspNetCoreConfigNames.DotNetEnvironment]); Assert.Equal("Staging", env[KnownAspNetCoreConfigNames.Environment]); Assert.Equal("Testing", env["ASPIRE_ENVIRONMENT"]); } [Fact] public void ApplyEffectiveEnvironment_UsesInheritedAspireEnvironmentWhenContextDoesNotSetOne() { var env = new Dictionary<string, string>(); var inherited = new Dictionary<string, string?> { [AppHostEnvironmentDefaults.AspireEnvironmentVariableName] = "Staging" }; AppHostEnvironmentDefaults.ApplyEffectiveEnvironment( env, AppHostEnvironmentDefaults.ProductionEnvironmentName, inherited); Assert.Equal("Staging", env[KnownAspNetCoreConfigNames.DotNetEnvironment]); Assert.False(env.ContainsKey(KnownAspNetCoreConfigNames.Environment)); } }