SeibroShortmIssuParserTests.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Infrastructure.StockData;
  2. namespace Application.Tests;
  3. /// <summary>SEIBro getShortmIssuInfo 파서 — 실샘플(다수행) 필드 매핑 + 자연키(ISIN) 결측 스킵. SECN_TPCD·ISSU_DT 는 배치 스탬핑(파서 미포함).</summary>
  4. [TestClass]
  5. public sealed class SeibroShortmIssuParserTests
  6. {
  7. [TestMethod]
  8. public void Parse_SampleXml_MapsIssuanceRows()
  9. {
  10. var rows = SeibroShortmIssuParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getShortmIssuInfo.xml")));
  11. Assert.IsTrue(rows.Count > 1, "다수 종목");
  12. var first = rows[0];
  13. Assert.AreEqual("KRZF00405288", first.Isin);
  14. Assert.AreEqual("현대오일뱅크 20180801-21-2", first.KorSecnNm);
  15. Assert.AreEqual(405, first.IssucoCustno);
  16. Assert.AreEqual("에이치디현대오일뱅크", first.IssucoCustNm);
  17. }
  18. [TestMethod]
  19. public void Parse_MissingIsin_SkipsRow()
  20. {
  21. const string xml = """
  22. <vector result="1">
  23. <data vectorkey="0" type="Document"><result><KOR_SECN_NM value="이름만"/></result></data>
  24. </vector>
  25. """;
  26. var rows = SeibroShortmIssuParser.Parse(SeibroXml.Parse(xml));
  27. Assert.AreEqual(0, rows.Count, "ISIN 없으면 스킵");
  28. }
  29. }