| 12345678910111213141516171819202122232425262728293031323334353637 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- /// <summary>
- /// SEIBro getBassetUnredScale 파서 — 소문자 <result> 래퍼(getDerivCombiIssuInfo 와 함께 유이한 소문자 2종).
- /// 실샘플은 UNRED_REMA 가 빈 value(SeibroXml 이 키 제외 → null) — 미상환종목수만 있고 잔액 null 인 케이스 방어 확인.
- /// </summary>
- [TestClass]
- public sealed class SeibroBassetUnredScaleParserTests
- {
- [TestMethod]
- public void Parse_SampleXml_LowercaseWrapper_EmptyRemaAsNull()
- {
- var rows = SeibroBassetUnredScaleParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getBassetUnredScale.xml")));
- Assert.AreEqual(1, rows.Count);
- var f = rows[0];
- Assert.AreEqual("EURO STOXX 50", f.BassetContent);
- Assert.AreEqual(2, f.UnredSecncnt, "미상환 2종목");
- Assert.IsNull(f.UnredRema, "빈 value(UNRED_REMA) → null");
- }
- [TestMethod]
- public void Parse_WithRema_ParsesDecimal()
- {
- const string xml = """
- <vector result="1"><data vectorkey="0" type="Document"><result>
- <BASSET_CONTENT value="HSCEI"/><UNRED_SECNCNT value="150"/><UNRED_REMA value="1234567890.50"/>
- </result></data></vector>
- """;
- var rows = SeibroBassetUnredScaleParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(1, rows.Count);
- Assert.AreEqual(150, rows[0].UnredSecncnt);
- Assert.AreEqual(1234567890.50m, rows[0].UnredRema, "미상환잔액 소수 파싱");
- }
- }
|