コード例 #1
0
ファイル: CommonClassTests.cs プロジェクト: Rizjiy/RMarketMVC
        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);

        }
コード例 #2
0
        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);

        }
コード例 #3
0
        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;
        }
コード例 #4
0
ファイル: CommonClassTests.cs プロジェクト: Rizjiy/RMarketMVC
        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));
        }
コード例 #5
0
        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));

        }