using Infrastructure.StockData; namespace Application.Tests; /// SEIBro getIntPayInfo 파서 — 빈 fixture(result="0") 빈결과 검증 + 스펙 기반 합성 XML 필드 매핑. [TestClass] public sealed class SeibroIntPayParserTests { [TestMethod] public void Parse_EmptySampleXml_ReturnsNoRows() { var rows = SeibroIntPayParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getIntPayInfo.xml"))); Assert.AreEqual(0, rows.Count, "실샘플 result=0 빈결과"); } [TestMethod] public void Parse_SyntheticXml_MapsSpecFields() { // 빈 fixture 대응 — 채권.md 스펙 기준 합성 XML const string xml = """ """; var rows = SeibroIntPayParser.Parse(SeibroXml.Parse(xml)); Assert.AreEqual(1, rows.Count); var row = rows[0]; Assert.AreEqual(4.485m, row.CouponRate); Assert.AreEqual("1", row.IntPayWayTpcd); Assert.AreEqual(3, row.IntPayCycleTerms); Assert.AreEqual("23", row.IntPayCycleTpcd, "개월 주기"); Assert.IsTrue(row.AcrintPayYn); Assert.AreEqual("01", row.IntPayTimsTpcd, "후급"); Assert.AreEqual(new DateOnly(2018, 8, 3), row.BeforeDate); Assert.AreEqual(new DateOnly(2018, 11, 3), row.AfterDate); } }