Files
zszq-trs/YLErpUnitTest/Modules/UnderlyingModule/MarginParamsImportServiceTest.cs
T
2024-05-09 14:06:26 +08:00

92 lines
3.4 KiB
C#

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<UnderlyingHisData>("{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<VarietyHisData>("{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);
}
}
}
}