| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- /// <summary>SEIBro getCDInfo 파서 — 빈 fixture(result="0") 빈결과 검증 + 스펙 기반 합성 XML 필드 매핑.</summary>
- [TestClass]
- public sealed class SeibroCDParserTests
- {
- [TestMethod]
- public void Parse_EmptySampleXml_ReturnsNoRows()
- {
- var rows = SeibroCDParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getCDInfo.xml")));
- Assert.AreEqual(0, rows.Count, "실샘플 result=0 빈결과");
- }
- [TestMethod]
- public void Parse_SyntheticXml_MapsSpecFields()
- {
- // 빈 fixture 대응 — 채권.md 스펙 기준 합성 XML
- const string xml = """
- <vector result="1">
- <data vectorkey="0" type="Document"><result>
- <ISSUCO_CUSTNO value="3061"/>
- <KOR_SECN_NM value="테스트은행 CD 20180801-91"/>
- <ISSU_CUR_CD value="KRW"/>
- <FIRST_ISSU_AMT value="10000000000"/>
- <ISSU_WHCD value="2"/>
- <FACE_AMT value="10000000000"/>
- <SALE_AMT value="9950000000"/>
- <DISCN_RATE value="1.85"/>
- <INT_PAY_MANN_TPCD value="1"/>
- <ISSU_DT value="20180801"/>
- <XPIR_DT value="20181031"/>
- <ELTSC_YN value="Y"/>
- </result></data>
- </vector>
- """;
- var rows = SeibroCDParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(1, rows.Count);
- var row = rows[0];
- Assert.AreEqual(3061, row.IssucoCustno);
- Assert.AreEqual("KRW", row.IssuCurCd);
- Assert.AreEqual(10000000000m, row.FirstIssuAmt);
- Assert.AreEqual(1.85m, row.DiscnRate);
- Assert.AreEqual("1", row.IntPayMannTpcd, "할인식");
- Assert.AreEqual(new DateOnly(2018, 8, 1), row.IssuDt);
- Assert.AreEqual(new DateOnly(2018, 10, 31), row.XpirDt);
- Assert.IsTrue(row.EltscYn);
- }
- }
|