92 lines
3.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|