using Infrastructure.StockData;
namespace Application.Tests;
/// SEIBro getAssetXrcInfo 파서 — 대문자 <RESULT> 래퍼. 행사기준일련번호(XrcStdSeq)별 기준비율·행사가격 다수 행 매핑.
[TestClass]
public sealed class SeibroAssetXrcParserTests
{
[TestMethod]
public void Parse_SampleXml_MapsExerciseRows()
{
var rows = SeibroAssetXrcParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getAssetXrcInfo.xml")));
Assert.AreEqual(8, rows.Count, "행사기준 8단계");
var first = rows.Single(c => c.XrcStdSeq == 1);
Assert.AreEqual(1, first.AssetSeq);
Assert.AreEqual(100m, first.XrcStdRatio);
Assert.AreEqual(278.83m, first.XrcPrice);
var last = rows.Single(c => c.XrcStdSeq == 8);
Assert.AreEqual(65m, last.XrcStdRatio, "마지막 배리어 65%");
Assert.AreEqual(181.2395m, last.XrcPrice);
}
[TestMethod]
public void Parse_MissingKeys_SkipsRow()
{
const string xml = """
""";
var rows = SeibroAssetXrcParser.Parse(SeibroXml.Parse(xml));
Assert.AreEqual(0, rows.Count, "XRC_STD_SEQ 없으면 스킵");
}
}