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

65 lines
2.3 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using YLErp.DBModels;
using YLErp.DBModels.Consts;
namespace YLErp.Modules.DataProviderModule
{
[TestClass]
public class TradeHisDataProviderTest : YLUnitTestBase
{
[TestMethod]
public void Test1()
{
TradeHisData t;
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
var value = 0.1;
var datas = new TradeHisData[20];
var startDate = DateTime.Today.AddYears(1);
for (var i = 0; i < 20; i += 2)
{
datas[i] = new TradeHisData
{
TradeId = 1,
OptDate = DateTime.Now,
OptId = 0,
OptName = UserName,
Value = value + i * 0.05,
ValueDate = startDate.AddDays(i * 3),
ValueType = ConsTradeField.NoRiskRate
};
datas[i + 1] = datas[i].Clone();
datas[i + 1].ValueType = ConsTradeField.DividendRate;
}
DbContext.TradeHisData.AddRange(datas);
DbContext.SaveChanges();
for (var i = 0; i < 10; i += 2)
{
var provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(1));
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(2));
provider.Initialize();
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(6));
Assert.AreNotEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreNotEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
}
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
}
}
}