| 1234567891011121314151617181920212223242526272829303132333435 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- /// <summary>SEIBro getBondIssuInfo 파서 — 실샘플(1행) 필드 매핑 + 자연키(ISIN/발행일) 결측 스킵.</summary>
- [TestClass]
- public sealed class SeibroBondIssuParserTests
- {
- [TestMethod]
- public void Parse_SampleXml_MapsIssuanceRow()
- {
- var rows = SeibroBondIssuParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getBondIssuInfo.xml")));
- Assert.AreEqual(1, rows.Count);
- var row = rows[0];
- Assert.AreEqual("KR6268761881", row.Isin);
- Assert.AreEqual(new DateOnly(2018, 8, 3), row.IssuDt);
- Assert.AreEqual(29998, row.IssucoCustno);
- Assert.AreEqual("SK해운", row.IssucoCustNm);
- Assert.AreEqual("SK해운 61", row.KorSecnNm);
- }
- [TestMethod]
- public void Parse_MissingIsinOrIssuDt_SkipsRow()
- {
- const string xml = """
- <vector result="2">
- <data vectorkey="0" type="Document"><result><ISSU_DT value="20180803"/><ISSUCO_CUSTNO value="1"/></result></data>
- <data vectorkey="1" type="Document"><result><ISIN value="KR6268761881"/></result></data>
- </vector>
- """;
- var rows = SeibroBondIssuParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(0, rows.Count, "ISIN 없음·발행일 없음 둘 다 스킵");
- }
- }
|