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, "미상환잔액 소수 파싱");
}
}