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($"{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($"{nameof(t.TradeId)} in (1)"); } } }