using MBN_STOCK_WEBVIEW.LegacyApplication; namespace MBN_STOCK_WEBVIEW.LegacyBridge.Tests; public sealed class LegacyComparisonBridgeTests { [Theory] [InlineData("search-comparison-domestic", "{\"query\":\"삼성\"}", typeof(LegacySearchComparisonDomesticIntent))] [InlineData("search-comparison-world", "{\"query\":\"APPLE\"}", typeof(LegacySearchComparisonWorldIntent))] [InlineData("select-comparison-domestic", "{\"selectionId\":\"comparison-domestic-0001-0001\"}", typeof(LegacySelectComparisonDomesticIntent))] [InlineData("select-comparison-world", "{\"selectionId\":\"comparison-world-0001-0001\"}", typeof(LegacySelectComparisonWorldIntent))] [InlineData("select-comparison-fixed", "{\"targetId\":\"kospi\"}", typeof(LegacySelectComparisonFixedIntent))] [InlineData("choose-comparison-domestic", "{\"selectionId\":\"comparison-domestic-0001-0001\"}", typeof(LegacyChooseComparisonDomesticIntent))] [InlineData("choose-comparison-world", "{\"selectionId\":\"comparison-world-0001-0001\"}", typeof(LegacyChooseComparisonWorldIntent))] [InlineData("choose-comparison-fixed", "{\"targetId\":\"kospi\"}", typeof(LegacyChooseComparisonFixedIntent))] [InlineData("swap-comparison-targets", "{}", typeof(LegacySwapComparisonTargetsIntent))] [InlineData("clear-comparison-targets", "{}", typeof(LegacyClearComparisonTargetsIntent))] [InlineData("add-comparison-pair", "{}", typeof(LegacyAddComparisonPairIntent))] [InlineData("select-comparison-pair", "{\"rowId\":\"comparison-pair-00000001\"}", typeof(LegacySelectComparisonPairIntent))] [InlineData("move-comparison-pair", "{\"direction\":\"up\"}", typeof(LegacyMoveComparisonPairIntent))] [InlineData("delete-selected-comparison-pair", "{}", typeof(LegacyDeleteSelectedComparisonPairIntent))] [InlineData("delete-all-comparison-pairs", "{}", typeof(LegacyDeleteAllComparisonPairsIntent))] [InlineData("activate-comparison-action", "{\"actionId\":\"comparison-candle\"}", typeof(LegacyActivateComparisonActionIntent))] public void ComparisonIntentsAreClosed(string type, string payload, Type expected) { Assert.True(LegacyBridgeProtocol.TryParseIntent( $"{{\"type\":\"{type}\",\"payload\":{payload}}}", out var intent, out _)); Assert.IsType(expected, intent); } [Fact] public void ComparisonIntentRejectsUnexpectedOrRawIdentityFields() { Assert.False(LegacyBridgeProtocol.TryParseIntent( "{\"type\":\"choose-comparison-domestic\",\"payload\":{\"selectionId\":\"comparison-domestic-0001-0001\",\"stockCode\":\"005930\"}}", out _, out _)); Assert.False(LegacyBridgeProtocol.TryParseIntent( "{\"type\":\"move-comparison-pair\",\"payload\":{\"direction\":\"sideways\"}}", out _, out _)); } }