| 12345678910111213141516171819202122232425262728293031323334353637 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- /// <summary>SEIBro getBondStatInfo 파서 — 실샘플(1행) 필드 매핑 + 신용등급 4사(빈칸=null 포함) + Y/N·날짜·소수 파싱.</summary>
- [TestClass]
- public sealed class SeibroBondStatParserTests
- {
- [TestMethod]
- public void Parse_SampleXml_MapsAllFields_AndCreditGrades()
- {
- var rows = SeibroBondStatParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getBondStatInfo.xml")));
- Assert.AreEqual(1, rows.Count);
- var f = rows[0];
- Assert.AreEqual(29998, f.IssucoCustno);
- Assert.AreEqual("SK해운 61", f.KorSecnNm);
- Assert.AreEqual("1108", f.SecnKacd);
- Assert.AreEqual(new DateOnly(2018, 8, 3), f.IssuDt);
- Assert.AreEqual(new DateOnly(2020, 2, 3), f.XpirDt);
- Assert.AreEqual("KRW", f.IssuCurCd);
- Assert.AreEqual(126000000000m, f.FirstIssuAmt);
- Assert.AreEqual(4.485m, f.CouponRate);
- Assert.AreEqual("0000", f.OptionTpcd);
- Assert.IsFalse(f.ForcErlyRedYn, "FORC_ERLY_RED_YN=N");
- Assert.AreEqual("2", f.GrtyTpcd, "무보증");
- Assert.AreEqual("1", f.RankTpcd, "선순위");
- Assert.IsFalse(f.EltscYn, "ELTSC_YN=N 예탁");
- Assert.AreEqual(new DateOnly(2020, 2, 4), f.DlistDt);
- // 신용등급 4사: KIS/KR 존재, NICE/SCI 는 빈칸 → null
- Assert.AreEqual("133", f.KisValatGrdCd);
- Assert.AreEqual("133", f.KrValatGrdCd);
- Assert.IsNull(f.NiceValatGrdCd, "빈 value 는 null");
- Assert.IsNull(f.SciValatGrdCd, "빈 value 는 null");
- }
- }
|