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 없음·발행일 없음 둘 다 스킵");
}
}