public void Get_StrategyParam() { //Организация - создание стратегии IStrategy strategyMock = new Examples.Strategies.StrategyMock(); StrategyInfo strategyInfo = new StrategyInfo { Id = 1, Name = "Mock", TypeName = "RMarket.Examples.Strategies.StrategyMock, RMarket.Examples" }; Instance instance = new Instance { Id = 1, StrategyInfoId = strategyInfo.Id, StrategyInfo = strategyInfo, GroupID = new Guid("a76dc9b4-8816-438e-aed3-c123374c2e3e") }; //Действие - Получение параметров IEnumerable<ParamEntity> strategyParams = StrategyHelper.GetStrategyParams(instance); ParamEntity param1 = strategyParams.FirstOrDefault(t => t.FieldName == "decimalParam"); ParamEntity param2 = strategyParams.FirstOrDefault(t => t.FieldName == "period3"); //Утверждение - Количество параметров Assert.AreEqual(6, strategyParams.Count()); Assert.AreEqual(param1.DisplayName, "decimal param"); Assert.AreEqual(param1.FieldValue, 30.25m); Assert.IsInstanceOfType(param1.FieldValue, typeof(Decimal)); Assert.AreEqual(param1.Description, "Какой-то параметр типа Decimal"); Assert.AreEqual(param2.DisplayName, "period3"); Assert.AreEqual(param2.FieldValue, 30); Assert.AreEqual(param2.Description, null); }
public void BeginTest_HttpPost() { SessionHelper.session = new SessionStateMock(); StrategyInfo strategyInfo = new StrategyInfo { Id = 1, Name = "Mock", TypeName = "RMarket.Examples.Strategies.StrategyMock, RMarket.Examples" }; Ticker ticker = new Ticker { Id = 1, Code = "SBER" }; TimeFrame timeFrame = new TimeFrame { Id = 11, Name = "1 day" }; Instance instance = new Instance { Id = 1, GroupID = new Guid("a76dc9b4-8816-438e-aed3-c123374c2e3e"), StrParams = "[{\"FieldName\":\"withSleep\",\"FieldValue\":true}]", StrategyInfoId = strategyInfo.Id, StrategyInfo = strategyInfo, TickerId=ticker.Id, Ticker = ticker, TimeFrameId=timeFrame.Id, TimeFrame=timeFrame }; Mock<IInstanceRepository> instanceRepoMock = new Mock<IInstanceRepository>(); instanceRepoMock.Setup(m => m.Instances).Returns(new List<Instance> { instance }.AsQueryable()); instanceRepoMock.Setup(m => m.Find(1)).Returns(instance); Mock<ICandleRepository> candleRepoMock = new Mock<ICandleRepository>(); candleRepoMock.Setup(m => m.Candles).Returns(new List<Candle> { new Candle(ticker.Id,timeFrame.Id,new DateTime(2015,1,1),10m,15m,8m,11m,0), new Candle(ticker.Id,timeFrame.Id,new DateTime(2015,1,2),11m,15m,8m,11m,0), new Candle(ticker.Id,timeFrame.Id,new DateTime(2015,1,3),11m,16m,10m,15m,0), }.AsQueryable()); TesterModel model = new TesterModel { InstanceId = 1, DateFrom=new DateTime(2015,1,1), DateTo=new DateTime(2015,2,1) }; TesterController controller = CreateTestManagerController(instanceRepoMock.Object, candleRepoMock.Object); //Действие ActionResult result = controller.BeginTest(model); // Утверждение //1. В сесии есть объект результата List<TestResult> testResultCollection = (List<TestResult>)SessionHelper.session["TestResultCollection"]; Assert.AreNotEqual(null, testResultCollection); //2. Проверка реквизитов сформированной стратегии IStrategy strategy = testResultCollection.FirstOrDefault(t => t.Id == 1).Strategy; Assert.AreEqual(ticker, strategy.Instr.Ticker); Assert.AreEqual(timeFrame, strategy.Instr.TimeFrame); //3. Стратегия стартована Assert.AreEqual(true, strategy.Manager.IsStarted); }
private static IEnumerable<ParamEntity> GetStrategyParamsVaried(Instance instance) { IEnumerable<ParamEntity> res = null; if (instance.StrategyInfo != null) res = StrategyHelper.GetStrategyParams(instance); else res = new List<ParamEntity>(); return res; }
public void Get_Strategy_With_Save_Param() { //Организация - создание стратегии StrategyInfo strategyInfo = new StrategyInfo { Id = 1, Name = "Mock", TypeName = "RMarket.Examples.Strategies.StrategyMock, RMarket.Examples" }; Instance instance = new Instance { Id = 1, StrategyInfoId = strategyInfo.Id, StrategyInfo = strategyInfo, GroupID = new Guid("a76dc9b4-8816-438e-aed3-c123374c2e3e"), StrParams = "[{\"FieldName\":\"decimalParam\",\"FieldValue\":30.26}]" }; //Действие - Получение параметров IStrategy strategy = StrategyHelper.CreateStrategy(instance); //Утверждение - значения параметров стратегии var strategyMock = (Examples.Strategies.StrategyMock)strategy; Assert.AreEqual(strategyMock.period1, 5); Assert.AreEqual(strategyMock.decimalParam, 30.26m); Assert.IsInstanceOfType(strategyMock.decimalParam, typeof(Decimal)); }
public void Can_Edit_Instance() { // Организация - создание имитированного хранилища данных StrategyInfo strategyInfo = new StrategyInfo { Id = 1, Name = "Mock", TypeName = "RMarket.Examples.Strategies.StrategyMock, RMarket.Examples" }; Instance instance1 = new Instance { Id = 1, GroupID = new Guid("a76dc9b4-8816-438e-aed3-c123374c2e3e"), StrategyInfoId = 1, StrategyInfo = strategyInfo }; Instance instance2 = new Instance { Id = 2, GroupID = new Guid("a76dc9b4-8816-438e-aed3-c123374c2e3e"), StrategyInfoId = 1, StrategyInfo = strategyInfo }; Instance instance3 = new Instance { Id = 3, GroupID = new Guid("a8a15362-1c4b-4f5a-97a3-50e7484d9bac"), StrategyInfoId = 1, StrategyInfo = strategyInfo }; Mock<IInstanceRepository> instanceRepoMock = new Mock<IInstanceRepository>(); instanceRepoMock.Setup(m => m.Instances).Returns(new List<Instance> { instance1, instance2, instance3, }.AsQueryable()); instanceRepoMock.Setup(m => m.Find(1)).Returns(instance1); instanceRepoMock.Setup(m => m.Find(2)).Returns(instance2); instanceRepoMock.Setup(m => m.Find(3)).Returns(instance3); instanceRepoMock.Setup(m => m.Find(6)).Returns<object>(null); // Организация - создание контроллера InstanceController controller = CreateInstanceController(instanceRepoMock.Object, null, null, null); //Действие InstanceModel model1 = ((ViewResult)controller.Edit( 1)).ViewData.Model as InstanceModel; InstanceModel model2 = ((ViewResult)controller.Edit( 2)).ViewData.Model as InstanceModel; InstanceModel model3 = ((ViewResult)controller.Edit( 3)).ViewData.Model as InstanceModel; ActionResult result6 = controller.Edit( 6); // Утверждение - Редактируем верные объекты из списка Assert.AreEqual(1, model1.Id); Assert.AreEqual(2, model2.Id); Assert.AreEqual(3, model3.Id); //Неверный объект Assert.IsInstanceOfType(result6, typeof(ActionResult)); }