using Infrastructure.StockData; namespace Application.Tests; [TestClass] public sealed class SeibroFmnmAltParserTests { [TestMethod] public void Parse_FromSampleXml_MapsNameChange() { // SEIBro getFmnmAltInfo 실응답 fixture (다음카카오→카카오 상호변경) — 1행. 전/후 상호·혼용/단일유통일 매핑. var rows = SeibroFmnmAltParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getFmnmAltInfo.xml"))); Assert.AreEqual(1, rows.Count); var r = rows[0]; Assert.AreEqual(3572, r.IssucoCustno); Assert.AreEqual(new DateOnly(2015, 10, 1), r.RgtStdDt); Assert.AreEqual("(주)다음카카오", r.FmnmBfaltKorNm); Assert.AreEqual("Daum Kakao", r.FmnmBfaltEngNm); Assert.AreEqual("(주)카카오", r.FmnmAltKorNm); Assert.AreEqual("Kakao Corp.", r.FmnmAltEngNm); Assert.AreEqual(new DateOnly(2015, 10, 12), r.MixusCirclBeginDt); Assert.AreEqual(new DateOnly(2015, 10, 19), r.MixusCirclExpryDt); Assert.AreEqual(new DateOnly(2015, 10, 20), r.UniCirclDt); } [TestMethod] public void Parse_SkipsRow_WhenKeyMissing() { // 기대 행위: ISSUCO_CUSTNO 또는 RGT_STD_DT 없으면 건너뛴다 const string xml = """ """; var rows = SeibroFmnmAltParser.Parse(SeibroXml.Parse(xml)); Assert.AreEqual(0, rows.Count); } }