feat: load legacy Cuts and Res runtime assets
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
namespace MBN_STOCK_WEBVIEW.LegacyWeb.Tests;
|
||||
|
||||
public sealed class LegacyDbSmokeRuntimeSelectionContractTests
|
||||
{
|
||||
private static readonly string RepositoryRoot = FindRepositoryRoot();
|
||||
private static readonly string Program = File.ReadAllText(Path.Combine(
|
||||
RepositoryRoot,
|
||||
"tools",
|
||||
"MBN_STOCK_WEBVIEW.DbSmoke",
|
||||
"Program.cs"));
|
||||
private static readonly string NxtAudit = File.ReadAllText(Path.Combine(
|
||||
RepositoryRoot,
|
||||
"tools",
|
||||
"MBN_STOCK_WEBVIEW.DbSmoke",
|
||||
"NxtThemeRestoreDbAudit.cs"));
|
||||
|
||||
[Fact]
|
||||
public void SelectedLegacyRuntimeEndpointIsInjectedIntoNxtAudit()
|
||||
{
|
||||
Assert.Contains(
|
||||
"var iniPath = Path.Combine(root, \"Res\", \"MmoneyCoder.ini\");",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"new LegacyIniDatabaseOptionsLoader(_ => null).Load(iniPath)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"MariaDbEndpointReference.From(selectedOptions.MariaDb)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"selection.ReferenceMariaDb",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"MariaDbEndpointReference referenceOptions",
|
||||
NxtAudit,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"referenceOptions.Host",
|
||||
NxtAudit,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"referenceOptions.Port",
|
||||
NxtAudit,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"referenceOptions.Database",
|
||||
NxtAudit,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void JsonRuntimeEndpointIsCapturedBeforeEnvironmentOverrides()
|
||||
{
|
||||
Assert.Contains(
|
||||
"new DatabaseOptionsLoader(_ => null).Load(configurationPath)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"var runtime = DatabaseRuntime.CreateDefault(configurationPath);",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"HasCompleteEndpointIdentity(configuredMariaDb)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"MariaDbEndpointReference.From(configuredMariaDb)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"MariaDbEndpointReference.From(runtime.Options.MariaDb)",
|
||||
Program,
|
||||
StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NxtAuditHasNoMachineSpecificOriginalConfigurationDependency()
|
||||
{
|
||||
Assert.DoesNotContain("OriginalConfigurationPath", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("ReadOriginalEndpoint", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("MBN_STOCK_N", NxtAudit, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.DoesNotContain("MmoneyCoder.ini", NxtAudit, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InjectedReferenceContainsEndpointIdentityOnly()
|
||||
{
|
||||
Assert.Contains(
|
||||
"internal sealed record MariaDbEndpointReference(",
|
||||
NxtAudit,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("string? Host", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.Contains("int Port", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.Contains("string? Database", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("UserName", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("Password", NxtAudit, StringComparison.Ordinal);
|
||||
|
||||
Assert.Contains("originalSha256=", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.Contains("currentSha256=", NxtAudit, StringComparison.Ordinal);
|
||||
Assert.Contains("configuredEqual=", NxtAudit, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
private static string FindRepositoryRoot()
|
||||
{
|
||||
var current = new DirectoryInfo(AppContext.BaseDirectory);
|
||||
while (current is not null)
|
||||
{
|
||||
if (File.Exists(Path.Combine(current.FullName, "MBN_STOCK_WEBVIEW.sln")))
|
||||
{
|
||||
return current.FullName;
|
||||
}
|
||||
|
||||
current = current.Parent;
|
||||
}
|
||||
|
||||
throw new DirectoryNotFoundException("Could not locate the repository root.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user