fix: initialize selected runtime for live playout
This commit is contained in:
@@ -117,7 +117,7 @@ public sealed class LegacyDevelopmentLiveStartupContractTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AppliedDevelopmentLiveUsesSelectedRuntimePathsAndProtectedDatabaseInputs()
|
||||
public void AppliedDevelopmentLiveUsesSelectedRuntimePathsAndSelectedResDatabaseAuthority()
|
||||
{
|
||||
var window = File.ReadAllText(Path.Combine(ParityRoot, "MainWindow.xaml.cs"));
|
||||
var playout = File.ReadAllText(Path.Combine(
|
||||
@@ -142,14 +142,15 @@ public sealed class LegacyDevelopmentLiveStartupContractTests
|
||||
window,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_isDevelopmentLiveLaunch ||\n" +
|
||||
"var selectedLegacyDatabaseIni =\n" +
|
||||
" selectedResourceDirectory is null\n" +
|
||||
" ? null",
|
||||
window.ReplaceLineEndings("\n"),
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"DatabaseRuntime.CreateDevelopmentLiveLocalOverride()",
|
||||
window,
|
||||
"? DatabaseRuntime.CreateDevelopmentLiveLocalOverride(\n" +
|
||||
" selectedResourceDirectory)",
|
||||
window.ReplaceLineEndings("\n"),
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"? PlayoutOptionsLoader.LoadDevelopmentLive(",
|
||||
@@ -168,7 +169,7 @@ public sealed class LegacyDevelopmentLiveStartupContractTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DatabaseFailureDoesNotDowngradeOrBlockValidatedLiveEngine()
|
||||
public void InvalidDevelopmentLiveDatabaseConfigurationBlocksEngineAndAutomaticConnect()
|
||||
{
|
||||
var window = File.ReadAllText(Path.Combine(ParityRoot, "MainWindow.xaml.cs"))
|
||||
.ReplaceLineEndings("\n");
|
||||
@@ -177,44 +178,50 @@ public sealed class LegacyDevelopmentLiveStartupContractTests
|
||||
"MainWindow.Playout.cs"))
|
||||
.ReplaceLineEndings("\n");
|
||||
|
||||
var runtimeReset = window.IndexOf(
|
||||
"_databaseRuntime = null;",
|
||||
var databaseFailureCondition = window.IndexOf(
|
||||
"_isDevelopmentLiveLaunch &&\n" +
|
||||
" exception is DatabaseConfigurationException;",
|
||||
StringComparison.Ordinal);
|
||||
var pagePlanReset = window.IndexOf(
|
||||
"fixedPagePlanProvider = null;",
|
||||
runtimeReset,
|
||||
var startupBlock = window.IndexOf(
|
||||
"_developmentLiveStartupBlocked = true;",
|
||||
databaseFailureCondition,
|
||||
StringComparison.Ordinal);
|
||||
var databaseFailureEnd = window.IndexOf(
|
||||
"_industryWorkflow = new LegacyIndustrySelectionWorkflow(",
|
||||
pagePlanReset,
|
||||
var safeMessage = window.IndexOf(
|
||||
"\"Development Live 데이터베이스 설정을 확인할 수 없습니다.\"",
|
||||
startupBlock,
|
||||
StringComparison.Ordinal);
|
||||
var playoutInitialization = window.IndexOf(
|
||||
"InitializePlayoutRuntime();",
|
||||
safeMessage,
|
||||
StringComparison.Ordinal);
|
||||
var automaticConnectGuard = window.IndexOf(
|
||||
"if (!_developmentLiveStartupBlocked)",
|
||||
playoutInitialization,
|
||||
StringComparison.Ordinal);
|
||||
var automaticConnect = window.IndexOf(
|
||||
"await ConnectPlayoutAsync(_lifetimeCancellation.Token);",
|
||||
automaticConnectGuard,
|
||||
StringComparison.Ordinal);
|
||||
var earlyBlock = playout.IndexOf(
|
||||
"if (_developmentLiveStartupBlocked)",
|
||||
StringComparison.Ordinal);
|
||||
var earlyReturn = playout.IndexOf(
|
||||
"return;",
|
||||
earlyBlock,
|
||||
StringComparison.Ordinal);
|
||||
var createEngine = playout.IndexOf(
|
||||
"_playoutEngine = PlayoutEngineFactory.Create(",
|
||||
StringComparison.Ordinal);
|
||||
|
||||
Assert.True(runtimeReset >= 0);
|
||||
Assert.True(pagePlanReset > runtimeReset);
|
||||
Assert.True(databaseFailureEnd > pagePlanReset);
|
||||
Assert.True(playoutInitialization > databaseFailureEnd);
|
||||
Assert.DoesNotContain(
|
||||
"_developmentLiveStartupBlocked = true;",
|
||||
window[runtimeReset..databaseFailureEnd],
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("databaseInitializationSucceeded", window,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_isDevelopmentLiveLaunch\n" +
|
||||
" ? PlayoutOptionsLoader.LoadDevelopmentLive(",
|
||||
playout,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"if (_playoutOptions.Mode != PlayoutMode.Live)",
|
||||
playout,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"_playoutEngine = PlayoutEngineFactory.Create(",
|
||||
playout,
|
||||
StringComparison.Ordinal);
|
||||
Assert.True(databaseFailureCondition >= 0);
|
||||
Assert.True(startupBlock > databaseFailureCondition);
|
||||
Assert.True(safeMessage > startupBlock);
|
||||
Assert.True(playoutInitialization > safeMessage);
|
||||
Assert.True(automaticConnectGuard > playoutInitialization);
|
||||
Assert.True(automaticConnect > automaticConnectGuard);
|
||||
Assert.True(earlyBlock >= 0);
|
||||
Assert.True(earlyReturn > earlyBlock);
|
||||
Assert.True(createEngine > earlyReturn);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user