Пример #1
0
        public void PrepareBrokerDataTest(string recommend)
        {
            var                   interactor            = new InteractorPostHeader(string.Empty, _connection.Object, DataService.RepositoryController.RepositoryPost);
            DataModelQc           brokerData            = new DataModelQc(123, "123", "123", 123.123f, "123", 123.213f, 123.213f, 123.213f, 123.213f, "123", 123.213f, 123, 123);
            PostHeaderBrokerModel postHeaderBrokerModel = new PostHeaderBrokerModel(brokerData);
            IPostHeaderModel      postHeaderModel       = new DataModelPost("123", "123", "123", "123", recommend, 123.123f, "123", "123",
                                                                            "123", "123", "123", "123", "123", "123", 12, 123, true);

            interactor.Presenter = _presenterPostHeaderMock.Object;

            _presenterPostHeaderMock.Setup(f => f.GetPreviousPrice()).Returns(It.IsAny <double>());
            _presenterPostHeaderMock.Setup(f => f.SetBrokerFields(postHeaderBrokerModel, interactor.GetCamelPos(postHeaderBrokerModel.CurrentPrice)));


            foreach (var item in typeof(InteractorPostHeader).GetRuntimeMethods())
            {
                if (item.Name.Equals("PrepareBrokerData"))
                {
                    item.Invoke(interactor, new object[] { postHeaderBrokerModel, postHeaderModel });
                    break;
                }
            }

            _presenterPostHeaderMock.Verify(f => f.GetPreviousPrice(), Times.AtLeastOnce);
            _presenterPostHeaderMock.Verify(f => f.SetBrokerFields(postHeaderBrokerModel, interactor.GetCamelPos(postHeaderBrokerModel.CurrentPrice)), Times.Once);
        }
Пример #2
0
        private void OnMessageQc(IModel incomeModel)
        {
            if (_postHeaderModel == null)
            {
                return;
            }

            if (incomeModel is DataModelQc modelQc)
            {
#if DEBUG
                if (modelQc.QcId == 123)
                {
                    Debug.WriteLine("#" + ++count + " _" + modelQc.QcTimestamp + " NAME_" + _postHeaderModel.AuthorName + " HASH_" + GetHashCode());
                }
#endif

                if (_brokerDataModel == null)
                {
                    _brokerDataModel = new PostHeaderBrokerModelCreator(modelQc).GetModel();
                }
                else
                {
                    _brokerDataModel.Update(modelQc);
                }

                PrepareBrokerData(_brokerDataModel, _postHeaderModel);
            }
        }
Пример #3
0
        public void SetBrokerFields(PostHeaderBrokerModel model, int position)
        {
            _view.SetDifference(model.Difference + " " + _postLocaleStrings.Pips);
            _view.SetCurrentPrice(model.CurrentPrice, position);

            SetCurrentPriceImg(model.IsCurrentPriceIncreasing);
            SetDifferenceState(model.IsDifferencePositive);
        }
        public void TestGetModel()
        {
            var brokerModel = new PostHeaderBrokerModel(_qc);
            var creator     = new PostHeaderBrokerModelCreator(_qc);

            var actual = creator.GetModel();

            Assert.AreEqual(brokerModel, actual);
        }
Пример #5
0
        private bool SetBidAskPrice(PostHeaderBrokerModel postHeaderBrokerModel, EBuySell recommend)
        {
            if (recommend == EBuySell.Buy)
            {
                postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceAsk;
                return(false);
            }

            postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceBid;
            return(true);
        }
Пример #6
0
        private void PrepareBrokerData(PostHeaderBrokerModel postHeaderBrokerModel, IPostHeaderModel postHeaderModel)
        {
            if (postHeaderModel == null || postHeaderBrokerModel == null)
            {
                return;
            }
            Enum.TryParse(postHeaderModel.Recommend, out EBuySell recommend);

            if (recommend != EBuySell.Buy && recommend != EBuySell.Sell)
            {
                return;
            }

            bool isSell = SetBidAskPrice(postHeaderBrokerModel, recommend);

            int camelPositionCurrentPrice = GetCamelPos(postHeaderBrokerModel.CurrentPrice);

            postHeaderModel.Price = AlignRorPrice(postHeaderBrokerModel.CurrentPrice, postHeaderModel.Price);
            int camelPositionPrice = GetCamelPos(postHeaderModel.Price);

            var prevPrice          = Presenter.GetPreviousPrice();
            var doubleCurrentPrice = double.Parse(postHeaderBrokerModel.CurrentPrice, CultureInfo.InvariantCulture);

            postHeaderBrokerModel.IsCurrentPriceIncreasing = SetPriceStatus(prevPrice, doubleCurrentPrice);

            try
            {
                postHeaderBrokerModel.IsCurrentPriceIncreasing = SetPriceStatus(Presenter.GetPreviousPrice(), Convert.ToDouble(postHeaderBrokerModel.CurrentPrice));
            }
            catch (Exception)
            {
                return;
            }

            try
            {
                var difference = SetDifferenceAmmount(postHeaderModel.Price, postHeaderBrokerModel.CurrentPrice, isSell,
                                                      camelPositionPrice, camelPositionCurrentPrice);

                postHeaderBrokerModel.IsDifferencePositive = difference > 0;
                postHeaderBrokerModel.Difference           = difference;
            }
            catch (Exception)
            {
                return;
            }

            Presenter.SetBrokerFields(postHeaderBrokerModel, camelPositionCurrentPrice);
        }
Пример #7
0
        public void SetUp()
        {
            _routerMock      = new Mock <IRouterPostHeader>(MockBehavior.Strict);
            _viewMock        = new Mock <IViewPostHeader>(MockBehavior.Strict);
            _interactorMock  = new Mock <IInteractorPostHeader>(MockBehavior.Strict);
            _postHeaderModel = new DataModelPost(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                                                 It.IsAny <float>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                                                 It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>());

            _postHeaderBrokerModel = new PostHeaderBrokerModel();

            _viewMock.SetupSet(f => f.Presenter = It.IsAny <IPresenterPostHeader>());
            _viewMock.Setup(f => f.SetConfig());

            _interactorMock.SetupSet(f => f.Presenter = It.IsAny <IPresenterPostHeader>());

            _postLocaleStrings = new Mock <IPost>(MockBehavior.Strict);
            _stylesHolderMock  = new Mock <IPostHeaderStylesHolder>(MockBehavior.Strict);
        }
Пример #8
0
        public void SetBidAskPriceTest(string recommend, bool expected)
        {
            var                   interactor            = new InteractorPostHeader(string.Empty, _connection.Object, DataService.RepositoryController.RepositoryPost);
            DataModelQc           brokerData            = new DataModelQc(123, "123", "123", 123.123f, "123", 123.213f, 123.213f, 123.213f, 123.213f, "123", 123.213f, 123, 123);
            PostHeaderBrokerModel postHeaderBrokerModel = new PostHeaderBrokerModel(brokerData);
            IPostHeaderModel      postHeaderModel       = new DataModelPost("123", "123", "123", "123", recommend, 123.123f, "123", "123",
                                                                            "123", "123", "123", "123", "123", "123", 12, 123, true);

            interactor.Presenter = _presenterPostHeaderMock.Object;

            foreach (var item in typeof(InteractorPostHeader).GetRuntimeMethods())
            {
                if (item.Name.Equals("SetBidAskPrice"))
                {
                    Enum.TryParse(postHeaderModel.Recommend, out EBuySell res);
                    var actual = item.Invoke(interactor, new object[] { postHeaderBrokerModel, res });
                    Assert.AreEqual(expected, actual);
                    break;
                }
            }
        }