| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using Infrastructure.StockData;
- namespace Application.Tests;
- [TestClass]
- public sealed class SeibroSlbDealingParserTests
- {
- [TestMethod]
- public void Parse_FromSampleXml_MapsAmountsAndRatios()
- {
- // SEIBro getSlbDealingByIsin 실응답 fixture — 1행. 응답엔 ISIN/STD_DT 없이 대차 수치만.
- var rows = SeibroSlbDealingParser.Parse(SeibroXml.Parse(SeibroFixtures.Read("getSlbDealingByIsin.xml")));
- Assert.AreEqual(1, rows.Count);
- var row = rows[0];
- Assert.AreEqual(232553706L, row.TotIssuStkqty, "총발행주식수");
- Assert.AreEqual(474002L, row.TrQty, "일일거래량");
- Assert.AreEqual(300210L, row.MatcQty, "대차체결");
- Assert.AreEqual(39829L, row.RedQty, "대차상환");
- Assert.AreEqual(21976319L, row.SlbTrRemQty, "대차잔고주수");
- Assert.AreEqual(4179731923300L, row.FrinerLendRemAmt, "외국인 대여잔고금액");
- Assert.AreEqual(0.01m, row.FrinerLendRemRatio, "외국인 대여비율 (.01 선행점)");
- Assert.AreEqual(1700699489400L, row.NativeLendRemAmt);
- Assert.AreEqual(0m, row.NativeLendRemRatio, "0 은 0 (선행점 없음)");
- Assert.AreEqual(4881975749000L, row.FrinerBrwRemAmt);
- Assert.AreEqual(0.01m, row.FrinerBrwRemRatio);
- Assert.AreEqual(998455663700L, row.NativeBrwRemAmt);
- Assert.AreEqual(0m, row.NativeBrwRemRatio);
- }
- [TestMethod]
- public void Parse_EmptyVector_ReturnsNoRows()
- {
- // 기대 행위: 대차 없는 종목(빈 vector result="0") → 0행 (정상 빈결과)
- const string xml = """<vector result="0"></vector>""";
- var rows = SeibroSlbDealingParser.Parse(SeibroXml.Parse(xml));
- Assert.AreEqual(0, rows.Count);
- }
- }
|