using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Data.Entity.Infrastructure; using System.IO; using System.Linq; using YLErp.BLL; using YLErp.DBModels; namespace YLErp.Modules.MarginModule { [TestClass] public class MarginParamsImportServiceTest : YLUnitTestBase { [TestMethod("测试标的保证金参数导入")] public void TestImportUnderlying() { var un = GetUnderlyingManager(); AddClearSQL("{0}='{1}'", nameof(UnderlyingHisData.UnderlyingCode), un.UnderlyingCode); using (var ms = new MemoryStream()) { WriteExcel(false, un.UnderlyingCode, ms); var result = new MarginParamsImportService(this).ImportUnderlying(ms); Assert.IsTrue(result.SuccessSum > 0, result.ResultMsg); Assert.IsTrue(un.MarginRate == 0.077); var datas = DbContext.UnderlyingHisData.Where(n => n.UnderlyingCode == un.UnderlyingCode).ToArray(); Assert.IsTrue(datas.Length == 1 && datas[0].Value == 0.077); } } [TestMethod("测试品种保证金参数导入")] public void TestImportVariety() { var va = GetVariety(); AddClearSQL("{0}='{1}'", nameof(VarietyHisData.VarietyId), va.id); using (var ms = new MemoryStream()) { WriteExcel(true, va.VarietyCode, ms); var result = new MarginParamsImportService(this).ImportVariety(ms); Assert.IsTrue(result.SuccessSum > 0, result.ResultMsg); Assert.IsTrue(va.Margin == 0.077); var datas = DbContext.VarietyHisData.Where(n => n.VarietyId == va.id).ToArray(); Assert.IsTrue(datas.Length == 1 && datas[0].Value == 0.077); } } private void WriteExcel(bool isVariety, string code, Stream streamIn) { var codeColName = isVariety ? "品种代码" : "标的代码"; using (var wb = new ClosedXML.Excel.XLWorkbook()) { var ws = wb.AddWorksheet("保证金比例"); var cell = ws.FirstCell(); foreach (var str in new[] { codeColName, "变动日期", "保证金比例" }) { cell.SetValue(str); cell = cell.CellRight(); } cell = ws.Row(2).FirstCell(); foreach (var str in new[] { code, valuedateBLL.ValueDate.OtcFormatDate(), "7.7%" }) { cell.SetValue(str); cell = cell.CellRight(); } ws = wb.AddWorksheet("Span波动率变动"); cell = ws.FirstCell(); foreach (var str in new[] { codeColName, "变动日期", "Span波动率变动" }) { cell.SetValue(str); cell = cell.CellRight(); } ws = wb.AddWorksheet("Span涨跌幅度"); cell = ws.FirstCell(); foreach (var str in new[] { codeColName, "变动日期", "Span涨跌幅度" }) { cell.SetValue(str); cell = cell.CellRight(); } wb.SaveAs(streamIn); } } } }