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); }
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); } }
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); }
private bool SetBidAskPrice(PostHeaderBrokerModel postHeaderBrokerModel, EBuySell recommend) { if (recommend == EBuySell.Buy) { postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceAsk; return(false); } postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceBid; return(true); }
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); }
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); }
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; } } }