从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using YLErp.BLL;
|
||||
using YLErp.DBModels;
|
||||
using YLErp.Models;
|
||||
|
||||
namespace YLErp.Modules.UnderlyingModule
|
||||
{
|
||||
[TestClass]
|
||||
public class HisDataServiceTest : YLUnitTestBase
|
||||
{
|
||||
[TestMethod("测试历史数据升级(标的品种)")]
|
||||
public void TestVarietyUpdate()
|
||||
{
|
||||
var service = new VarietyDalService(OptUser);
|
||||
|
||||
var db = DbContextFactory.GetYLDbContext();
|
||||
|
||||
var va = db.variety.AsNoTracking().FirstOrDefault(n => n.VarietyCode == "LU");
|
||||
|
||||
va.id = 0;
|
||||
va.VarietyCode = "LUX";
|
||||
va.UpLimit = string.Empty;
|
||||
va = service.SaveData(va);
|
||||
|
||||
var date = va.Margin.HasValue ? valuedateBLL.ValueDate : new DateTime(2000, 1, 1);
|
||||
|
||||
var dvalue = 0.033;
|
||||
|
||||
va.Margin = dvalue;
|
||||
va.VolatilityRate = "3.3%";
|
||||
va.UpLimit = "3.3%";
|
||||
var va2 = service.SaveData(va);
|
||||
|
||||
Assert.AreEqual(va2.Margin, dvalue);
|
||||
|
||||
var tf = db.VarietyHisData.Any(n => n.VarietyId == va.id && n.ValueDate == date
|
||||
&& n.ValueType == nameof(MarginParamModel.MarginRate) && n.Value == dvalue);
|
||||
Assert.IsTrue(tf);
|
||||
}
|
||||
|
||||
[TestMethod("测试历史数据升级(标的资产)")]
|
||||
public void TestUnderlyingUpdate()
|
||||
{
|
||||
var service = new UnderlyingDalService(OptUser);
|
||||
|
||||
var db = DbContextFactory.GetYLDbContext();
|
||||
|
||||
var va = db.underlying_manager.AsNoTracking().FirstOrDefault(n => n.UnderlyingCode == "HC2106");
|
||||
|
||||
va.id = 0;
|
||||
va.UnderlyingCode = "HCC2106";
|
||||
va = service.SaveUnderlyingData(va);
|
||||
|
||||
var date = va.MarginRate.HasValue ? valuedateBLL.ValueDate : new DateTime(2000, 1, 1);
|
||||
|
||||
var dvalue = 0.033;
|
||||
|
||||
va.MarginRate = dvalue;
|
||||
va.VolatilityRate = "3.3%";
|
||||
va.UpDownLimit = "3.3%";
|
||||
var va2 = service.SaveUnderlyingData(va);
|
||||
|
||||
Assert.AreEqual(va2.MarginRate, dvalue);
|
||||
Assert.AreEqual(va2.VolatilityRate, 0.033);
|
||||
|
||||
var tf = db.UnderlyingHisData.Any(n => n.UnderlyingCode == va.UnderlyingCode && n.ValueDate == date
|
||||
&& n.ValueType == nameof(MarginParamModel.MarginRate) && n.Value == dvalue);
|
||||
Assert.IsTrue(tf);
|
||||
}
|
||||
|
||||
[TestMethod("测试标的历史数据回写")]
|
||||
public void TestUnderlyingBackHisDataToMainTable()
|
||||
{
|
||||
var un = GetUnderlyingManager();
|
||||
|
||||
var date = valuedateBLL.ValueDate.AddDays(-2);
|
||||
|
||||
AddClearSQL<UnderlyingHisData>("UnderlyingCode='{0}'", un.UnderlyingCode);
|
||||
|
||||
var service = new UnderlyingHisDataService(OptUser);
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = 0.0335,
|
||||
ValueDate = date,
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.MarginRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = 0.0355,
|
||||
ValueDate = date.AddDays(1),
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.MarginRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = null,
|
||||
ValueDate = date.AddDays(1),
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.MarginRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = 0.0335,
|
||||
ValueDate = date,
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.VolatilityRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = 33.555,
|
||||
ValueDate = date,
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.UpDownLimit)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new UnderlyingHisDataAddOrUpdateRequest
|
||||
{
|
||||
UnderlyingCode = un.UnderlyingCode,
|
||||
Value = null,
|
||||
ValueDate = date,
|
||||
ValueFlag = "F",
|
||||
ValueType = nameof(MarginParamModel.UpDownLimit)
|
||||
});
|
||||
|
||||
var changes = service.BackHisDataToMainTable();
|
||||
|
||||
Assert.IsTrue(changes == 3);
|
||||
|
||||
var un2 = DbContextFactory.GetYLDbContext().underlying_manager.FirstOrDefault(n => n.UnderlyingCode == un.UnderlyingCode);
|
||||
|
||||
//Assert.IsTrue(un2.MarginRate == 0.0355);
|
||||
Assert.IsTrue(un2.MarginRate == null);
|
||||
Assert.IsTrue(un2.VolatilityRate == "3.35%");
|
||||
Assert.IsTrue(string.IsNullOrEmpty(un2.UpDownLimit));//"33.555"
|
||||
}
|
||||
|
||||
[TestMethod("测试品种历史数据回写")]
|
||||
public void TestVarietyBackHisDataToMainTable()
|
||||
{
|
||||
var va = GetVariety();
|
||||
|
||||
var date = valuedateBLL.ValueDate.AddDays(-2);
|
||||
|
||||
AddClearSQL<VarietyHisData>("VarietyId='{0}'", va.id);
|
||||
|
||||
var service = new VarietyHisDataService(OptUser);
|
||||
|
||||
service.AddOrUpdateHisData(new VarietyHisDataAddOrUpdateRequest
|
||||
{
|
||||
VarietyId = va.id,
|
||||
Value = 0.0335,
|
||||
ValueDate = date,
|
||||
ValueType = nameof(MarginParamModel.MarginRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new VarietyHisDataAddOrUpdateRequest
|
||||
{
|
||||
VarietyId = va.id,
|
||||
Value = 0.0355,
|
||||
ValueDate = date.AddDays(1),
|
||||
ValueType = nameof(MarginParamModel.MarginRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new VarietyHisDataAddOrUpdateRequest
|
||||
{
|
||||
VarietyId = va.id,
|
||||
Value = 0.0335,
|
||||
ValueDate = date,
|
||||
ValueType = nameof(MarginParamModel.VolatilityRate)
|
||||
});
|
||||
|
||||
service.AddOrUpdateHisData(new VarietyHisDataAddOrUpdateRequest
|
||||
{
|
||||
VarietyId = va.id,
|
||||
Value = 0.05566,
|
||||
ValueDate = date,
|
||||
ValueType = nameof(MarginParamModel.UpDownLimit)
|
||||
});
|
||||
|
||||
var changes = service.BackHisDataToMainTable();
|
||||
|
||||
Assert.IsTrue(changes == 3);
|
||||
|
||||
var va2 = DbContextFactory.GetYLDbContext().variety.FirstOrDefault(n => n.id == va.id);
|
||||
|
||||
Assert.IsTrue(va2.Margin == 0.0355);
|
||||
Assert.IsTrue(va2.VolatilityRate == "3.35%");
|
||||
Assert.IsTrue(va2.UpLimit == "5.566%");
|
||||
Assert.IsTrue(va2.DownLimit == "5.566%");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user