consolidation of some of the modules, localization fixes, product advisories work, qa work
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
namespace StellaOps.Remediation.WebService.Tests;
|
||||
|
||||
[CollectionDefinition(Name, DisableParallelization = true)]
|
||||
public sealed class RemediationEnvironmentCollection
|
||||
{
|
||||
public const string Name = "RemediationEnvironment";
|
||||
}
|
||||
|
||||
internal sealed class RemediationEnvironmentScope : IDisposable
|
||||
{
|
||||
private static readonly string[] ManagedKeys =
|
||||
[
|
||||
"DOTNET_ENVIRONMENT",
|
||||
"ASPNETCORE_ENVIRONMENT",
|
||||
"REMEDIATION__STORAGE__DRIVER",
|
||||
"REMEDIATION__STORAGE__POSTGRES__CONNECTIONSTRING",
|
||||
"CONNECTIONSTRINGS__DEFAULT"
|
||||
];
|
||||
|
||||
private readonly Dictionary<string, string?> _originalValues = new(StringComparer.Ordinal);
|
||||
|
||||
private RemediationEnvironmentScope()
|
||||
{
|
||||
foreach (var key in ManagedKeys)
|
||||
{
|
||||
_originalValues[key] = Environment.GetEnvironmentVariable(key);
|
||||
}
|
||||
}
|
||||
|
||||
public static RemediationEnvironmentScope InMemoryTestingProfile()
|
||||
{
|
||||
var scope = new RemediationEnvironmentScope();
|
||||
scope.Set("DOTNET_ENVIRONMENT", "Testing");
|
||||
scope.Set("ASPNETCORE_ENVIRONMENT", "Testing");
|
||||
scope.Set("REMEDIATION__STORAGE__DRIVER", "inmemory");
|
||||
scope.Set("REMEDIATION__STORAGE__POSTGRES__CONNECTIONSTRING", null);
|
||||
scope.Set("CONNECTIONSTRINGS__DEFAULT", null);
|
||||
return scope;
|
||||
}
|
||||
|
||||
public static RemediationEnvironmentScope PostgresWithoutConnection(string environmentName)
|
||||
{
|
||||
var scope = new RemediationEnvironmentScope();
|
||||
scope.Set("DOTNET_ENVIRONMENT", environmentName);
|
||||
scope.Set("ASPNETCORE_ENVIRONMENT", environmentName);
|
||||
scope.Set("REMEDIATION__STORAGE__DRIVER", "postgres");
|
||||
scope.Set("REMEDIATION__STORAGE__POSTGRES__CONNECTIONSTRING", null);
|
||||
scope.Set("CONNECTIONSTRINGS__DEFAULT", null);
|
||||
return scope;
|
||||
}
|
||||
|
||||
public static RemediationEnvironmentScope InMemoryDriver(string environmentName)
|
||||
{
|
||||
var scope = new RemediationEnvironmentScope();
|
||||
scope.Set("DOTNET_ENVIRONMENT", environmentName);
|
||||
scope.Set("ASPNETCORE_ENVIRONMENT", environmentName);
|
||||
scope.Set("REMEDIATION__STORAGE__DRIVER", "inmemory");
|
||||
scope.Set("REMEDIATION__STORAGE__POSTGRES__CONNECTIONSTRING", null);
|
||||
scope.Set("CONNECTIONSTRINGS__DEFAULT", null);
|
||||
return scope;
|
||||
}
|
||||
|
||||
public static RemediationEnvironmentScope PostgresWithConnection(
|
||||
string environmentName,
|
||||
string connectionString)
|
||||
{
|
||||
var scope = new RemediationEnvironmentScope();
|
||||
scope.Set("DOTNET_ENVIRONMENT", environmentName);
|
||||
scope.Set("ASPNETCORE_ENVIRONMENT", environmentName);
|
||||
scope.Set("REMEDIATION__STORAGE__DRIVER", "postgres");
|
||||
scope.Set("REMEDIATION__STORAGE__POSTGRES__CONNECTIONSTRING", connectionString);
|
||||
scope.Set("CONNECTIONSTRINGS__DEFAULT", connectionString);
|
||||
return scope;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var entry in _originalValues)
|
||||
{
|
||||
Environment.SetEnvironmentVariable(entry.Key, entry.Value);
|
||||
}
|
||||
}
|
||||
|
||||
private void Set(string key, string? value)
|
||||
{
|
||||
Environment.SetEnvironmentVariable(key, value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user