| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- [TestClass]
- public sealed class SeibroIssucoCustnoParserTests
- {
- [TestMethod]
- public void Parse_FromSampleXml_MapsFields()
- {
- // SEIBro getIssucoCustnoByIsin 실응답 fixture (삼성전자) — 단건 fallback 파서 (배치 미사용)
- var rows = SeibroIssucoCustnoParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getIssucoCustnoByIsin.xml")));
- Assert.AreEqual(1, rows.Count);
- Assert.AreEqual(593, rows[0].IssucoCustno);
- Assert.AreEqual("삼성전자", rows[0].RepSecnName);
- }
- [TestMethod]
- public void Parse_SkipsRows_WithoutCustno_AndAllowsMissingName()
- {
- const string xml = """
- <vector result="2">
- <data vectorkey="0" type="Document"><result>
- <ISSUCO_CUSTNO value="4131"/>
- </result></data>
- <data vectorkey="1" type="Document"><result>
- <REP_SECN_NM value="번호없는행"/>
- </result></data>
- </vector>
- """;
- var rows = SeibroIssucoCustnoParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(1, rows.Count, "ISSUCO_CUSTNO 없는 행은 건너뛴다");
- Assert.AreEqual(4131, rows[0].IssucoCustno);
- Assert.IsNull(rows[0].RepSecnName, "REP_SECN_NM 은 선택 필드");
- }
- }
|