| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- [TestClass]
- public sealed class SeibroStddtParserTests
- {
- [TestMethod]
- public void Parse_FromSampleXml_MapsFields_Samsung()
- {
- // SEIBro getStddtInfo 실응답 fixture (삼성전자) — 3행, 전부 정기총회(001)
- var rows = SeibroStddtParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getStddtInfo.xml")));
- Assert.AreEqual(3, rows.Count);
- var first = rows.Single(c => c.RgtStdDt == new DateOnly(2016, 12, 31));
- Assert.AreEqual(593, first.IssucoCustno);
- Assert.AreEqual("삼성전자", first.RepSecnNm);
- Assert.AreEqual("001", first.RgtRacd, "정기총회");
- Assert.AreEqual("정기총회", first.RgtRacdNm);
- Assert.AreEqual("99", first.RgtRsnDetailSortCd);
- }
- [TestMethod]
- public void Parse_SkipsRows_MissingNaturalKey()
- {
- // 기대 행위: 자연키(회사번호/기준일/사유코드/세부유형) 중 하나라도 없으면 건너뛴다
- const string xml = """
- <vector result="2">
- <data vectorkey="0" type="Document"><result>
- <ISSUCO_CUSTNO value="3572"/>
- <REP_SECN_NM value="상호변경회사"/>
- <RGT_STD_DT value="20151001"/>
- <RGT_RACD value="204"/>
- <RGT_RACD_NM value="상호변경"/>
- <RGT_RSN_DTAIL_SORT_CD value="90"/>
- </result></data>
- <data vectorkey="1" type="Document"><result>
- <ISSUCO_CUSTNO value="3572"/>
- <REP_SECN_NM value="사유코드누락"/>
- <RGT_STD_DT value="20151001"/>
- <RGT_RSN_DTAIL_SORT_CD value="90"/>
- </result></data>
- </vector>
- """;
- var rows = SeibroStddtParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(1, rows.Count, "RGT_RACD 없는 행은 skip");
- Assert.AreEqual("204", rows[0].RgtRacd, "상호변경 — Wave 3 트리거 코드");
- }
- }
|