consolidation of some of the modules, localization fixes, product advisories work, qa work

This commit is contained in:
master
2026-03-05 03:54:22 +02:00
parent 7bafcc3eef
commit 8e1cb9448d
3878 changed files with 72600 additions and 46861 deletions

View File

@@ -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);
}
}