using Infrastructure.StockData; namespace Application.Tests; /// SEIBro getBondIssuInfo 파서 — 실샘플(1행) 필드 매핑 + 자연키(ISIN/발행일) 결측 스킵. [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 = """ """; var rows = SeibroBondIssuParser.Parse(SeibroXml.Parse(xml)); Assert.AreEqual(0, rows.Count, "ISIN 없음·발행일 없음 둘 다 스킵"); } }