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