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);
}
}