feat: align legacy operator and playout behavior
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
namespace MBN_STOCK_WEBVIEW.LegacyWeb.Tests;
|
||||
|
||||
public sealed class LegacyRuntimeStockCutMenuNativeContractTests
|
||||
{
|
||||
private static readonly string RepositoryRoot = FindRepositoryRoot();
|
||||
private static readonly string MainWindow = File.ReadAllText(Path.Combine(
|
||||
RepositoryRoot,
|
||||
"src",
|
||||
"MBN_STOCK_WEBVIEW.LegacyParityApp",
|
||||
"MainWindow.xaml.cs"));
|
||||
|
||||
[Fact]
|
||||
public void MainWindowUsesExternalThenPackagedCandidatesAndInjectsResolvedRows()
|
||||
{
|
||||
Assert.Contains(
|
||||
"Environment.SpecialFolder.LocalApplicationData",
|
||||
MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("\"MBN_STOCK_WEBVIEW\"", MainWindow, StringComparison.Ordinal);
|
||||
Assert.Contains("\"Res\"", MainWindow, StringComparison.Ordinal);
|
||||
Assert.Contains("\"종목.ini\"", MainWindow, StringComparison.Ordinal);
|
||||
Assert.Contains(
|
||||
"LegacyRuntimeStockCutMenuLoader.ResolveFromCandidates(",
|
||||
MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("runtimeCutMenuOverridePath", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.Contains("AppContext.BaseDirectory", MainWindow, StringComparison.Ordinal);
|
||||
Assert.Contains("cutRows: cutMenuComposition.Rows", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("Environment.CurrentDirectory", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("Directory.GetCurrentDirectory", MainWindow,
|
||||
StringComparison.Ordinal);
|
||||
Assert.DoesNotContain("MBN_STOCK_N", MainWindow, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.DoesNotContain("bin\\Debug\\Res\\종목.ini", MainWindow,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DatabaseInitializationErrorWinsOverTheSingleCutMenuFallbackWarning()
|
||||
{
|
||||
var errorBranch = MainWindow.IndexOf(
|
||||
"if (initializationError is not null)",
|
||||
StringComparison.Ordinal);
|
||||
var warningBranch = MainWindow.IndexOf(
|
||||
"else if (cutMenuComposition.WarningMessage is { } cutMenuWarning)",
|
||||
errorBranch,
|
||||
StringComparison.Ordinal);
|
||||
var errorReport = MainWindow.IndexOf(
|
||||
"_controller.ReportError(initializationError);",
|
||||
errorBranch,
|
||||
StringComparison.Ordinal);
|
||||
var warningReport = MainWindow.IndexOf(
|
||||
"_controller.ReportWarning(cutMenuWarning);",
|
||||
warningBranch,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
Assert.True(errorBranch >= 0);
|
||||
Assert.True(errorReport > errorBranch);
|
||||
Assert.True(warningBranch > errorReport);
|
||||
Assert.True(warningReport > warningBranch);
|
||||
Assert.Equal(
|
||||
warningReport,
|
||||
MainWindow.LastIndexOf(
|
||||
"_controller.ReportWarning(cutMenuWarning);",
|
||||
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("Repository root was not found.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user