61 lines
2.8 KiB
C#
61 lines
2.8 KiB
C#
namespace MBN_STOCK_WEBVIEW.LegacyWeb.Tests;
|
|
|
|
public sealed class LegacyComparisonImportWebTests
|
|
{
|
|
private static readonly string RepositoryRoot = FindRepositoryRoot();
|
|
private static readonly string App = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "Web", "app.js");
|
|
private static readonly string Styles = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "Web", "styles.css");
|
|
private static readonly string MainWindow = Read("src", "MBN_STOCK_WEBVIEW.LegacyParityApp", "MainWindow.xaml.cs");
|
|
private static readonly string Bridge = Read("src", "MBN_STOCK_WEBVIEW.LegacyBridge", "LegacyBridgeProtocol.cs");
|
|
|
|
[Fact]
|
|
public void Comparison_workspace_exposes_explicit_fixed_source_merge_and_result()
|
|
{
|
|
Assert.Contains("importLegacy.textContent = \"원본 비교쌍 가져오기\"", App,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("importLegacy.dataset.comparisonImport = \"true\"", App,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("send(\"import-legacy-comparison-pairs\", {})", App,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("comparison.lastImport.sourceRowCount", App,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("comparison.lastImport.addedPairCount", App,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains(".comparison-import-status", Styles, StringComparison.Ordinal);
|
|
Assert.DoesNotContain("comparisonImportPath", App, StringComparison.Ordinal);
|
|
}
|
|
|
|
[Fact]
|
|
public void Native_composition_owns_the_trusted_source_and_database_resolver()
|
|
{
|
|
Assert.Contains("TrustedLegacyComparisonFileSource.CreateDefault()", MainWindow,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("new LegacyComparisonPairImportService(", MainWindow,
|
|
StringComparison.Ordinal);
|
|
Assert.Contains("comparisonImporter)", MainWindow, StringComparison.Ordinal);
|
|
Assert.Contains("\"import-legacy-comparison-pairs\" => ParseComparisonImport(payload)",
|
|
Bridge, StringComparison.Ordinal);
|
|
Assert.Contains("HasOnlyProperties(payload) ? new LegacyImportComparisonPairsIntent()",
|
|
Bridge, StringComparison.Ordinal);
|
|
}
|
|
|
|
private static string Read(params string[] segments) =>
|
|
File.ReadAllText(Path.Combine([RepositoryRoot, .. segments]));
|
|
|
|
private static string FindRepositoryRoot()
|
|
{
|
|
var directory = new DirectoryInfo(AppContext.BaseDirectory);
|
|
while (directory is not null)
|
|
{
|
|
if (File.Exists(Path.Combine(directory.FullName, "MBN_STOCK_WEBVIEW.sln")))
|
|
{
|
|
return directory.FullName;
|
|
}
|
|
|
|
directory = directory.Parent;
|
|
}
|
|
|
|
throw new DirectoryNotFoundException("Repository root was not found.");
|
|
}
|
|
}
|