using Infrastructure.StockData; namespace Application.Tests; /// /// SEIBro getBassetUnredScale 파서 — 소문자 <result> 래퍼(getDerivCombiIssuInfo 와 함께 유이한 소문자 2종). /// 실샘플은 UNRED_REMA 가 빈 value(SeibroXml 이 키 제외 → null) — 미상환종목수만 있고 잔액 null 인 케이스 방어 확인. /// [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 = """ """; 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, "미상환잔액 소수 파싱"); } }