SeibroDerivCombiIsinParserTests.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Infrastructure.StockData;
  2. namespace Application.Tests;
  3. /// <summary>SEIBro getDerivCombiIsinInfo 파서 — 대문자 &lt;RESULT&gt; 래퍼(파생결합 5종). 원금보전·만기·발행잔량·기초자산수 필드 + Y/N·날짜·소수 파싱.</summary>
  4. [TestClass]
  5. public sealed class SeibroDerivCombiIsinParserTests
  6. {
  7. [TestMethod]
  8. public void Parse_SampleXml_UppercaseWrapper_MapsMasterFields()
  9. {
  10. var rows = SeibroDerivCombiIsinParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getDerivCombiIsinInfo.xml")));
  11. Assert.AreEqual(1, rows.Count);
  12. var f = rows[0];
  13. Assert.AreEqual("삼성증권19449(사모/ELS)", f.KorSecnNm);
  14. Assert.AreEqual(1636, f.IssucoCustno);
  15. Assert.AreEqual("ELS", f.SecnKanm);
  16. Assert.AreEqual("KRW", f.IssuCurCd);
  17. Assert.AreEqual("21", f.RecuWhcd, "사모");
  18. Assert.AreEqual(132000000m, f.FirstIssuQty);
  19. Assert.AreEqual(0m, f.IssuRemq, "발행잔량 0");
  20. Assert.AreEqual(98.5m, f.PayinAmtRatio);
  21. Assert.AreEqual(130020000m, f.PayinAmt);
  22. Assert.AreEqual(new DateOnly(2018, 7, 2), f.IssuDt);
  23. Assert.AreEqual(new DateOnly(2018, 6, 29), f.ContDt);
  24. Assert.AreEqual(new DateOnly(2021, 7, 2), f.XpirDt);
  25. Assert.IsTrue(f.MidredPossYn, "중도상환가능 Y");
  26. Assert.AreEqual(new DateOnly(2019, 7, 3), f.RedDt);
  27. Assert.AreEqual("3", f.DerisecExerTpcd, "조기상환");
  28. Assert.AreEqual("3", f.PrcpPrsvTpcd, "원금비보장");
  29. Assert.AreEqual(0m, f.PrcpPrsvRate);
  30. Assert.AreEqual("2", f.ColatSetupTpcd, "미설정");
  31. Assert.AreEqual(3, f.BassetCnt, "기초자산 3종");
  32. Assert.IsFalse(f.MmPayYn, "월지급 N");
  33. }
  34. }