SeibroIssucoCustnoParserTests.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Infrastructure.StockData;
  2. namespace Application.Tests;
  3. [TestClass]
  4. public sealed class SeibroIssucoCustnoParserTests
  5. {
  6. [TestMethod]
  7. public void Parse_FromSampleXml_MapsFields()
  8. {
  9. // SEIBro getIssucoCustnoByIsin 실응답 fixture (삼성전자) — 단건 fallback 파서 (배치 미사용)
  10. var rows = SeibroIssucoCustnoParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getIssucoCustnoByIsin.xml")));
  11. Assert.AreEqual(1, rows.Count);
  12. Assert.AreEqual(593, rows[0].IssucoCustno);
  13. Assert.AreEqual("삼성전자", rows[0].RepSecnName);
  14. }
  15. [TestMethod]
  16. public void Parse_SkipsRows_WithoutCustno_AndAllowsMissingName()
  17. {
  18. const string xml = """
  19. <vector result="2">
  20. <data vectorkey="0" type="Document"><result>
  21. <ISSUCO_CUSTNO value="4131"/>
  22. </result></data>
  23. <data vectorkey="1" type="Document"><result>
  24. <REP_SECN_NM value="번호없는행"/>
  25. </result></data>
  26. </vector>
  27. """;
  28. var rows = SeibroIssucoCustnoParser.Parse(SeibroXml.Parse(xml));
  29. Assert.AreEqual(1, rows.Count, "ISSUCO_CUSTNO 없는 행은 건너뛴다");
  30. Assert.AreEqual(4131, rows[0].IssucoCustno);
  31. Assert.IsNull(rows[0].RepSecnName, "REP_SECN_NM 은 선택 필드");
  32. }
  33. }