| 12345678910111213141516171819202122232425262728293031323334353637 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- /// <summary>SEIBro getAssetXrcInfo 파서 — 대문자 <RESULT> 래퍼. 행사기준일련번호(XrcStdSeq)별 기준비율·행사가격 다수 행 매핑.</summary>
- [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 = """
- <vector result="1"><data vectorkey="0" type="Document"><RESULT>
- <ASSET_SEQ value="1"/><XRC_STD_RATIO value="100"/>
- </RESULT></data></vector>
- """;
- var rows = SeibroAssetXrcParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(0, rows.Count, "XRC_STD_SEQ 없으면 스킵");
- }
- }
|