Example #1
0
        private bool CheckFields(string price, EBuySell recommend, EAccessMode access, string tool, EForecastTime timePeriod, string comment, string img, out bool isSimple)
        {
            bool isFieldsValid = true;

            isSimple = true;
            bool commentState = !string.IsNullOrWhiteSpace(comment);

            if (IsBuySellSelected(recommend) || IsForecastTimeSelected(timePeriod) || IsToolSelected(tool))
            {
                if (!(IsBuySellSelected(recommend) && IsForecastTimeSelected(timePeriod) && IsToolSelected(tool) &&
                      IsAccessModeSelected(access) && !string.IsNullOrWhiteSpace(price)))
                {
                    BuySellSelected(recommend);
                    ForecastTimeSelected(timePeriod);
                    ToolSelected(tool);
                    AccessModeSelected(access);
                    isFieldsValid = false;
                }
                isSimple = false;
            }

            if (string.IsNullOrWhiteSpace(img) && !IsCommentInput(commentState, true))
            {
                CommentInput(commentState, true);
                isFieldsValid = false;
            }

            return(isFieldsValid);
        }
Example #2
0
 public void CreateInvalidPostWithoutTools(EBuySell buySellCancel, EForecastTime forecastTime, EAccess eAccess, string text)
 {
     appManager.NavigationHelper.GoToCreatePostOnNewsTab();
     appManager.CreatePostHelper.SelectInformationForCreatePost(buySellCancel, forecastTime, eAccess, text).
     CreatePostOnCreatePostScreen().
     ChekNoCreationsPosts();
 }
Example #3
0
        private CreatePostHelper SelectBuySell(EBuySell buySellCancel)
        {
            appManager.App.Tap(appManager.CreatePostScreen.createPost_buySell_textView);
            switch (buySellCancel)
            {
            case EBuySell.Buy:
                if (OnAndroid)
                {
                    appManager.App.Tap(appManager.AlertScreens.button1_on_alert);
                }
                else
                {
                    appManager.App.Tap(appManager.CreatePostScreen.createPost_recommend_buy_ios);
                    appManager.App.Tap(appManager.AlertScreens.ok_on_alert);
                }
                break;

            case EBuySell.Sell:
                if (OnAndroid)
                {
                    appManager.App.Tap(appManager.AlertScreens.button2_on_alert);
                }
                else
                {
                    appManager.App.Tap(appManager.CreatePostScreen.createPost_recommend_sell_ios);
                    appManager.App.Tap(appManager.AlertScreens.ok_on_alert);
                }
                break;

            case EBuySell.Cancel:
                appManager.App.Tap(appManager.AlertScreens.cancel_on_alert);
                break;
            }
            return(this);
        }
        public void BuySellSelectedFailTest(EBuySell buySell)
        {
            _presenterMock.Setup(f => f.BuySellState(EState.Fail));

            _interactor.BuySellSelected(buySell);

            _presenterMock.Verify(f => f.BuySellState(EState.Fail));
        }
Example #5
0
 // Проверить нужен данныей метод или нет
 public CreatePostHelper SelectInformationForCreatePost(EBuySell buySellCancel, EForecastTime forecastTime, EAccess eAccess, string text)
 {
     SelectBuySell(buySellCancel);
     SelectTime(forecastTime);
     SelectAccess(eAccess);
     appManager.App.EnterText(appManager.CreatePostScreen.createPost_comment_editText, text);
     return(this);
 }
 public void PerformQueryTestExceptions(string quote, string market, EBuySell recommend, string price,
                                        EAccessMode access, string content, string forecast, string file)
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var model = new CreatePostRequestModel(quote, market, recommend, price, access, content, forecast, file);
     });
 }
Example #7
0
 private bool IsBuySellSelected(EBuySell recommend)
 {
     if (recommend != EBuySell.None)
     {
         return(true);
     }
     return(false);
 }
        public void BuySellSelectedSuccessTest(EBuySell buySell)
        {
            _presenterMock.Setup(f => f.BuySellState(EState.None));

            _interactor.BuySellSelected(buySell);

            _presenterMock.Verify(f => f.BuySellState(EState.None));
        }
        public void AddSimplePostPositiveTest(string price, EBuySell recommend, EAccessMode access, string tool, string forecast, string comment, string img)
        {
            _repositoryMock.Setup(f => f.LangCreatePost.PriceLabel).Returns(It.IsAny <string>());
            _repositoryMock.Setup(f => f.LangCreatePost.ToolsButton).Returns(It.IsAny <string>());

            _connectionSenderMock.Setup(f => f.Send(It.IsAny <CreateSimplePostRequestModel>()));

            _interactor.AddPost(price, recommend, access, tool, forecast, comment, img);
        }
        public void ReadyToSetPriceTest(string tool, EBuySell recommend)
        {
            _presenterMock.Setup(f => f.SetPrice(It.IsAny <string>()));
            _repositoryMock.Setup(f => f.LangCreatePost.PriceLabel).Returns(It.IsAny <string>());

            _interactor.ReadyToSetPrice(It.IsAny <string>(), It.IsAny <EBuySell>());

            _presenterMock.Verify(f => f.SetPrice(It.IsAny <string>()), Times.Once);
        }
Example #11
0
        private string PreparePrice(EBuySell recommend)
        {
            if (_qcBidAsk == null)
            {
                return(_repository.LangCreatePost.PriceLabel);
            }

            var price = recommend == EBuySell.Buy ? _qcBidAsk.QcAsk : _qcBidAsk.QcBid;

            return(price);
        }
Example #12
0
        public CreatePostStrings LoadData()
        {
            var savedData = _repository.CreatePostStrings;

            if (savedData != null)
            {
                _selectedRecommend = savedData.BuySell.GetRecommendEnum();
            }

            return(savedData);
        }
Example #13
0
        private bool SetBidAskPrice(PostHeaderBrokerModel postHeaderBrokerModel, EBuySell recommend)
        {
            if (recommend == EBuySell.Buy)
            {
                postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceAsk;
                return(false);
            }

            postHeaderBrokerModel.CurrentPrice = postHeaderBrokerModel.CurrentPriceBid;
            return(true);
        }
        public void AddPostForecastStringNegativeTest(string price, EBuySell recommend, EAccessMode access, string tool, string forecast, string comment, string img)
        {
            _presenterMock.Setup(f => f.AccessModeState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.ForecastTimeState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.ToolState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.CommentState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.BuySellState(It.IsAny <EState>()));
            _repositoryMock.Setup(f => f.LangCreatePost.PriceLabel).Returns(It.IsAny <string>());
            _repositoryMock.Setup(f => f.LangCreatePost.ToolsButton).Returns(It.IsAny <string>());

            _interactor.AddPost(price, recommend, access, tool, forecast, comment, img);
        }
Example #15
0
        public void ReadyToSetPrice(string tool, EBuySell recommend)
        {
            if (string.IsNullOrWhiteSpace(tool) || recommend == EBuySell.None)
            {
                SetPrice(_repository.LangCreatePost.PriceLabel);
                return;
            }

            _selectedRecommend = recommend;
            _selectedTool      = tool.Replace("/", "");
            _createPostController.SetQuote(_selectedTool);
        }
        public void PreparePriceTestNegative(string quote, EBuySell recommend)
        {
            _repositoryMock.Setup(f => f.LangCreatePost.PriceLabel).Returns("Цена");
            var actualPrice = string.Empty;

            foreach (var item in typeof(InteractorCreatePost).GetRuntimeMethods())
            {
                if (item.Name.Equals("PreparePrice"))
                {
                    actualPrice = item.Invoke(_interactor, new object[] { recommend }) as string;
                    break;
                }
            }

            Assert.AreEqual("Цена", actualPrice);
        }
Example #17
0
        private void CreatePostRequestModelMainPart(string quote, string market, EBuySell recommend, string price, EAccessMode access, string content, string forecast, string file)
        {
            if (string.IsNullOrWhiteSpace(file) && string.IsNullOrWhiteSpace(content))
            {
                throw new ArgumentNullException(nameof(file) + " or " + nameof(content));
            }

            if (recommend == EBuySell.None || access == EAccessMode.None || string.IsNullOrWhiteSpace(price) ||
                string.IsNullOrWhiteSpace(forecast) || string.IsNullOrWhiteSpace(quote))
            {
                throw new ArgumentNullException(nameof(recommend) + " or " + nameof(access) + " or " + nameof(price) + " or " + nameof(forecast) + " or " + nameof(quote));
            }

            Quote     = quote?.Replace("/", string.Empty);
            Recommend = recommend == EBuySell.None ? string.Empty : recommend.ToString();
            Price     = price;
            Forecast  = forecast;
        }
        public void PerformQueryTest(string quote, string market, EBuySell recommend, string price,
                                     EAccessMode access, string content, string forecast, string file)
        {
            CreatePostRequestModel model = new CreatePostRequestModel(quote, market, recommend, price, access, content, forecast, file);
            var actual = model.PerformQuery();

            foreach (var item in typeof(CreatePostRequestModel).GetRuntimeMethods())
            {
                var res = item.GetParameters();
                if (item.Name.Equals("GetStringForecastTime") && item.GetParameters().First().ParameterType == typeof(string))
                {
                    forecast = item.Invoke(model, new object[] { forecast }) as string;
                    break;
                }
            }

            var expected = new JObject
            {
                ["quote"]     = quote,
                ["market"]    = market,
                ["recommend"] = recommend == EBuySell.None ? string.Empty : recommend.ToString(),
                ["access"]    = access == EAccessMode.None ? string.Empty : access.ToString(),
                ["forecast"]  = forecast
            };

            if (!string.IsNullOrWhiteSpace(price))
            {
                expected["price"] = price;
            }
            if (!string.IsNullOrWhiteSpace(file))
            {
                expected["image"] = "data:image/gif;base64," + file;
            }
            if (!string.IsNullOrWhiteSpace(content))
            {
                expected["content"] = content;
            }

            Assert.IsTrue(JToken.DeepEquals(actual, expected));
        }
        public void AddPostForecastStringPositiveTest(string price, EBuySell recommend, EAccessMode access, string tool, string forecast, string comment, string img)
        {
            _presenterMock.Setup(f => f.AccessModeState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.ForecastTimeState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.ToolState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.CommentState(It.IsAny <EState>()));
            _presenterMock.Setup(f => f.BuySellState(It.IsAny <EState>()));
            _repositoryMock.Setup(f => f.LangCreatePost.PriceLabel).Returns(It.IsAny <string>());
            _repositoryMock.Setup(f => f.LangCreatePost.ToolsButton).Returns(It.IsAny <string>());

            foreach (var item in typeof(InteractorCreatePost).GetRuntimeFields())
            {
                if (item.Name.Equals("_selectedTool"))
                {
                    item.SetValue(_interactor, "AUD/CAD");
                }
            }

            _connectionSenderMock.Setup(f => f.Send(It.IsAny <CreatePostRequestModel>()));

            _interactor.AddPost(price, recommend, access, tool, forecast, comment, img);
            _connectionSenderMock.Verify(f => f.Send(It.IsAny <CreatePostRequestModel>()));
        }
Example #20
0
        public void AddPost(string price, EBuySell recommend, EAccessMode access, string tool, string timePeriod, string comment, string img)
        {
            if (_currentRecieveStatus == EControllerStatus.Processing)
            {
                return;
            }

            if (!CheckFields(price, recommend, access, tool, timePeriod, comment, img, out bool isPostSimple))
            {
                return;
            }
            comment = comment?.Trim(' ').Trim('\n');

            if (isPostSimple)
            {
                _createPostController.Send(new CreateSimplePostRequestModel(market: "Simple", access: access, content: comment, image: img));
            }
            else
            {
                _createPostController.Send(new CreatePostRequestModel(quote: tool, market: "Currency",
                                                                      recommend: recommend, price: price, access: access, content: comment, forecast: timePeriod, image: img));
            }
        }
        public void PreparePriceTestPositive(EBuySell recommend, string price, string qcName, string qcAsk, string qcBid)
        {
            var actualPrice = string.Empty;

            foreach (var item in typeof(InteractorCreatePost).GetRuntimeFields())
            {
                if (item.Name.Equals("_qcBidAsk"))
                {
                    item.SetValue(_interactor, new QcBidAsk(qcName, qcBid, qcAsk));
                    break;
                }
            }

            foreach (var item in typeof(InteractorCreatePost).GetRuntimeMethods())
            {
                if (item.Name.Equals("PreparePrice"))
                {
                    actualPrice = item.Invoke(_interactor, new object[] { recommend }) as string;
                    break;
                }
            }

            Assert.AreEqual(actualPrice, price);
        }
Example #22
0
 public CreatePostRequestModel(string quote, string market, EBuySell recommend, string price, EAccessMode access, string content, EForecastTime forecast, string image = "")
     : base(market, access, content, image)
 {
     Forecast = GetStringForecastTime(forecast);
     CreatePostRequestModelMainPart(quote, market, recommend, price, access, content, Forecast, image);
 }
Example #23
0
        public static string GetLocaleStringFromEnum(this EBuySell recommend)
        {
            var result = Locale.Localization.Lang.GetType().GetRuntimeProperty(recommend.ToString()).GetValue(Locale.Localization.Lang) as string;

            return(result);
        }
Example #24
0
 public void AddPost(string price, EBuySell recommend, EAccessMode access, string tool, string timePeriod, string comment, string img)
 {
     _interactor.AddPost(price, recommend, access, tool, timePeriod, comment, img);
 }
Example #25
0
 public void ReadyToSetPrice(string tool, EBuySell recommend)
 {
     _interactor.ReadyToSetPrice(tool, recommend);
 }
Example #26
0
 public void BuySellSelected(EBuySell recommend)
 {
     _interactor.BuySellSelected(recommend);
 }
Example #27
0
 public void BuySellSelected(EBuySell recommend)
 {
     Presenter.BuySellState(IsBuySellSelected(recommend) ? EState.None : EState.Fail);
 }