feat: initialize existing development playout PCs
This commit is contained in:
@@ -178,6 +178,127 @@ public sealed class LegacyIniDatabaseOptionsLoaderTests
|
||||
Assert.Equal("selected.maria.invalid", runtime.Options.MariaDb.Host);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Runtime_DevelopmentLiveUsesOnlyExactLocalAppDataIni()
|
||||
{
|
||||
using var localApplicationData = TemporaryDirectory.Create();
|
||||
var resourceDirectory = Path.Combine(
|
||||
localApplicationData.Path,
|
||||
"MBN_STOCK_WEBVIEW",
|
||||
"Res");
|
||||
Directory.CreateDirectory(resourceDirectory);
|
||||
File.WriteAllBytes(
|
||||
Path.Combine(resourceDirectory, "MmoneyCoder.ini"),
|
||||
TemporaryLegacyIni.ValidUtf8Bytes());
|
||||
|
||||
const string environmentName = "MBN_STOCK_ORACLE_HOST";
|
||||
var originalEnvironment = Environment.GetEnvironmentVariable(environmentName);
|
||||
DatabaseRuntime runtime;
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable(
|
||||
environmentName,
|
||||
"stale-environment.invalid");
|
||||
runtime = DatabaseRuntime.CreateDevelopmentLiveLocalOverride(
|
||||
localApplicationData.Path);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable(
|
||||
environmentName,
|
||||
originalEnvironment);
|
||||
}
|
||||
|
||||
Assert.Equal("oracle.dev.invalid", runtime.Options.Oracle.Host);
|
||||
Assert.Equal("maria.dev.invalid", runtime.Options.MariaDb.Host);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Runtime_DevelopmentLiveFailsClosedWhenBothProtectedProfilesAreMissing()
|
||||
{
|
||||
using var localApplicationData = TemporaryDirectory.Create();
|
||||
Directory.CreateDirectory(Path.Combine(
|
||||
localApplicationData.Path,
|
||||
"MBN_STOCK_WEBVIEW",
|
||||
"Config"));
|
||||
|
||||
Assert.Throws<DatabaseConfigurationException>(
|
||||
() => DatabaseRuntime.CreateDevelopmentLiveLocalOverride(
|
||||
localApplicationData.Path));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Runtime_DevelopmentLiveFallsBackToProtectedLocalAppDataJson()
|
||||
{
|
||||
using var localApplicationData = TemporaryDirectory.Create();
|
||||
var configurationDirectory = Path.Combine(
|
||||
localApplicationData.Path,
|
||||
"MBN_STOCK_WEBVIEW",
|
||||
"Config");
|
||||
Directory.CreateDirectory(configurationDirectory);
|
||||
File.WriteAllText(
|
||||
Path.Combine(configurationDirectory, "database.local.json"),
|
||||
"""
|
||||
{
|
||||
"oracle": {
|
||||
"host": "json.oracle.invalid",
|
||||
"port": 1521,
|
||||
"sid": "DEVORA",
|
||||
"serviceName": null,
|
||||
"userName": "oracle-user",
|
||||
"password": "oracle-password"
|
||||
},
|
||||
"mariaDb": {
|
||||
"host": "json.maria.invalid",
|
||||
"port": 3306,
|
||||
"database": "dev_stock",
|
||||
"userName": "maria-user",
|
||||
"password": "maria-password",
|
||||
"tlsMode": "Required"
|
||||
}
|
||||
}
|
||||
""");
|
||||
|
||||
var runtime = DatabaseRuntime.CreateDevelopmentLiveLocalOverride(
|
||||
localApplicationData.Path);
|
||||
|
||||
Assert.Equal("json.oracle.invalid", runtime.Options.Oracle.Host);
|
||||
Assert.Equal("json.maria.invalid", runtime.Options.MariaDb.Host);
|
||||
Assert.Equal(MariaDbTlsMode.Required, runtime.Options.MariaDb.TlsMode);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Runtime_DevelopmentLiveRejectsNonOrdinaryIniTarget()
|
||||
{
|
||||
using var localApplicationData = TemporaryDirectory.Create();
|
||||
var iniDirectory = Path.Combine(
|
||||
localApplicationData.Path,
|
||||
"MBN_STOCK_WEBVIEW",
|
||||
"Res",
|
||||
"MmoneyCoder.ini");
|
||||
Directory.CreateDirectory(iniDirectory);
|
||||
|
||||
Assert.Throws<DatabaseConfigurationException>(
|
||||
() => DatabaseRuntime.CreateDevelopmentLiveLocalOverride(
|
||||
localApplicationData.Path));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Runtime_DevelopmentLiveRejectsNonOrdinaryJsonTarget()
|
||||
{
|
||||
using var localApplicationData = TemporaryDirectory.Create();
|
||||
var jsonDirectory = Path.Combine(
|
||||
localApplicationData.Path,
|
||||
"MBN_STOCK_WEBVIEW",
|
||||
"Config",
|
||||
"database.local.json");
|
||||
Directory.CreateDirectory(jsonDirectory);
|
||||
|
||||
Assert.Throws<DatabaseConfigurationException>(
|
||||
() => DatabaseRuntime.CreateDevelopmentLiveLocalOverride(
|
||||
localApplicationData.Path));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Load_OptionalRealLegacyIni_IsConfiguredWithoutPrintingValues()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user