feat: advance legacy UI behavior parity
This commit is contained in:
@@ -32,10 +32,10 @@ public sealed class LegacyOverseasOperatorControllerTests
|
||||
entry.Selection);
|
||||
|
||||
Assert.Equal("legacy-overseas-00000001", row.RowId);
|
||||
Assert.Equal("FOREIGN_INDEX", row.MarketText);
|
||||
Assert.Equal("나스닥 캔들 20일", row.StockName);
|
||||
Assert.Equal("해외지수", row.MarketText);
|
||||
Assert.Equal("나스닥", row.StockName);
|
||||
Assert.Equal("캔들그래프", row.GraphicType);
|
||||
Assert.Equal("PRICE", row.Subtype);
|
||||
Assert.Equal("20일", row.Subtype);
|
||||
Assert.Equal("1/1", row.PageText);
|
||||
Assert.Equal("8040", entry.CutCode);
|
||||
Assert.Equal("FOREIGN_INDEX", selection.GroupCode);
|
||||
@@ -86,6 +86,32 @@ public sealed class LegacyOverseasOperatorControllerTests
|
||||
controller.CreatePlayoutRequest().Playlist[1].Selection!.GraphicType);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task NonUsStockKeepsOneExactIdentityThroughBothActualUc5SceneAliases()
|
||||
{
|
||||
var controller = CreateController(
|
||||
stocks: [new("London Stock", "LNS@LON", "GB")]);
|
||||
controller.SelectTab(LegacyOperatorTabId.OverseasStocks);
|
||||
|
||||
// UC5's first inserted result is immediately the active RowMode row.
|
||||
var searched = await controller.SearchOverseasStocksAsync("london");
|
||||
Assert.Equal("London Stock", searched.Overseas!.Stock.Selected?.InputName);
|
||||
|
||||
var oneColumn = controller.ActivateOverseasAction("stock-current");
|
||||
var candle = controller.ActivateOverseasAction("stock-candle-5d");
|
||||
var rows = candle.Playlist;
|
||||
|
||||
Assert.Equal("5001", rows[0].ToPlayoutEntry().CutCode);
|
||||
Assert.Equal("8061", rows[1].ToPlayoutEntry().CutCode);
|
||||
Assert.All(rows, row =>
|
||||
{
|
||||
Assert.Equal("FOREIGN_STOCK", row.PlayoutSelection?.GroupCode);
|
||||
Assert.Equal("London Stock", row.PlayoutSelection?.Subject);
|
||||
Assert.Equal("LNS@LON|GB|1", row.PlayoutSelection?.DataCode);
|
||||
});
|
||||
Assert.Single(oneColumn.Playlist);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task OverseasActionsRejectInactiveTabAndStaleSearchIds()
|
||||
{
|
||||
@@ -103,7 +129,7 @@ public sealed class LegacyOverseasOperatorControllerTests
|
||||
|
||||
var stale = controller.SelectOverseasIndustry(staleId);
|
||||
Assert.Equal(LegacyOperatorStatusKind.Error, stale.StatusKind);
|
||||
Assert.Null(stale.Overseas!.Industry.Selected);
|
||||
Assert.Equal("반도체", stale.Overseas!.Industry.Selected?.KoreanName);
|
||||
}
|
||||
|
||||
private static LegacyOperatorController CreateController(
|
||||
@@ -147,11 +173,11 @@ public sealed class LegacyOverseasOperatorControllerTests
|
||||
}
|
||||
|
||||
private sealed class StaticStockService(
|
||||
IReadOnlyList<WorldStockSearchItem> items) : IWorldStockSearchService
|
||||
IReadOnlyList<WorldStockSearchItem> items) : IOverseasStockSearchService
|
||||
{
|
||||
public Task<WorldStockSearchResult> SearchAsync(
|
||||
string query,
|
||||
int maximumResults = LegacyWorldStockSearchService.DefaultMaximumResults,
|
||||
int maximumResults = LegacyOverseasStockSearchService.DefaultMaximumResults,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
Reference in New Issue
Block a user