Exemplo n.º 1
0
        public void VerifyStoreRequest(ReviewAction firstAction, ReviewAction secondAction)
        {
            //Arrange
            string firstTitleText, secondTitleText, firstNoButtonText, secondNoButtonText, firstYesButtonText, secondYesButtonText;

            //Act
            ReferringSitesPage.TriggerReviewRequest();
            ReferringSitesPage.WaitForReviewRequest();

            firstTitleText     = ReferringSitesPage.StoreRatingRequestTitleLabelText;
            firstNoButtonText  = ReferringSitesPage.StoreRatingRequestNoButtonText;
            firstYesButtonText = ReferringSitesPage.StoreRatingRequestYesButtonText;

            PerformReviewAction(firstAction);

            secondTitleText     = ReferringSitesPage.StoreRatingRequestTitleLabelText;
            secondNoButtonText  = ReferringSitesPage.StoreRatingRequestNoButtonText;
            secondYesButtonText = ReferringSitesPage.StoreRatingRequestYesButtonText;

            //Assert
            Assert.AreEqual(ReviewServiceConstants.TitleLabel_EnjoyingGitTrends, firstTitleText);
            Assert.AreEqual(ReviewServiceConstants.NoButton_NotReally, firstNoButtonText);
            Assert.AreEqual(ReviewServiceConstants.YesButton_Yes, firstYesButtonText);
            Assert.AreEqual(ReviewServiceConstants.NoButton_NoThanks, secondNoButtonText);
            Assert.AreEqual(ReviewServiceConstants.YesButton_OkSure, secondYesButtonText);

            if (firstAction is ReviewAction.NoButtonTapped)
            {
                Assert.AreEqual(ReviewServiceConstants.TitleLabel_Feedback, secondTitleText);
            }
            else
            {
                Assert.AreEqual(ReferringSitesPage.ExpectedAppStoreRequestTitle, secondTitleText);
            }

            //Act
            PerformReviewAction(secondAction);

            if (secondAction is ReviewAction.NoButtonTapped)
            {
                ReferringSitesPage.WaitForNoReviewRequest();
            }
        }
Exemplo n.º 2
0
        public async Task UpdateStateTest(ReviewAction firstReviewAction, ReviewAction secondReviewAction, ReviewRequest expectedReviewRequest)
        {
            //Arrange
            ReviewRequest reviewRequest;
            bool          didReviewCompletedFire = false;
            var           reviewCompletedTCS     = new TaskCompletionSource <ReviewRequest>();

            ReviewState reviewState_Initial, reviewState_AfterFirstAction, reviewState_AfterSecondAction;
            string      yesButtonText_Initial, yesButtonText_AfterFirstAction, yesButtonText_AfterSecondAction;
            string      noButtonText_Initial, noButtonText_AfterFirstAction, noButtonText_AfterSecondAction;
            string      titleText_Initial, titleText_AfterFirstAction, titleText_AfterSecondAction;

            ReviewService.ReviewCompleted += HandleReviewCompleted;

            var reviewService = ServiceCollection.ServiceProvider.GetRequiredService <ReviewService>();

            //Act
            reviewState_Initial   = reviewService.CurrentState;
            yesButtonText_Initial = reviewService.YesButtonText;
            noButtonText_Initial  = reviewService.NoButtonText;
            titleText_Initial     = reviewService.StoreRatingRequestViewTitle;

            reviewService.UpdateState(firstReviewAction);

            reviewState_AfterFirstAction   = reviewService.CurrentState;
            yesButtonText_AfterFirstAction = reviewService.YesButtonText;
            noButtonText_AfterFirstAction  = reviewService.NoButtonText;
            titleText_AfterFirstAction     = reviewService.StoreRatingRequestViewTitle;

            reviewService.UpdateState(secondReviewAction);

            reviewState_AfterSecondAction   = reviewService.CurrentState;
            yesButtonText_AfterSecondAction = reviewService.YesButtonText;
            noButtonText_AfterSecondAction  = reviewService.NoButtonText;
            titleText_AfterSecondAction     = reviewService.StoreRatingRequestViewTitle;

            reviewRequest = await reviewCompletedTCS.Task.ConfigureAwait(false);

            //Assert
            Assert.IsTrue(didReviewCompletedFire);

            Assert.AreEqual(ReviewState.Greeting, reviewState_Initial);
            Assert.AreEqual(ReviewServiceConstants.YesButton_Yes, yesButtonText_Initial);
            Assert.AreEqual(ReviewServiceConstants.NoButton_NotReally, noButtonText_Initial);
            Assert.AreEqual(ReviewServiceConstants.TitleLabel_EnjoyingGitTrends, titleText_Initial);

            if (firstReviewAction is ReviewAction.NoButtonTapped)
            {
                Assert.AreEqual(ReviewState.RequestFeedback, reviewState_AfterFirstAction);
                Assert.AreEqual(ReviewServiceConstants.YesButton_OkSure, yesButtonText_AfterFirstAction);
                Assert.AreEqual(ReviewServiceConstants.NoButton_NoThanks, noButtonText_AfterFirstAction);
                Assert.AreEqual(ReviewServiceConstants.TitleLabel_Feedback, titleText_AfterFirstAction);
            }
            else
            {
                Assert.AreEqual(ReviewState.RequestReview, reviewState_AfterFirstAction);
                Assert.AreEqual(ReviewServiceConstants.YesButton_OkSure, yesButtonText_AfterFirstAction);
                Assert.AreEqual(ReviewServiceConstants.NoButton_NoThanks, noButtonText_AfterFirstAction);
                Assert.AreEqual(AppStoreConstants.RatingRequest, titleText_AfterFirstAction);
            }

            Assert.AreEqual(ReviewState.Greeting, reviewState_AfterSecondAction);
            Assert.AreEqual(ReviewServiceConstants.YesButton_Yes, yesButtonText_AfterSecondAction);
            Assert.AreEqual(ReviewServiceConstants.NoButton_NotReally, noButtonText_AfterSecondAction);
            Assert.AreEqual(ReviewServiceConstants.TitleLabel_EnjoyingGitTrends, titleText_AfterSecondAction);

            Assert.AreEqual(expectedReviewRequest, reviewRequest);

            void HandleReviewCompleted(object?sender, ReviewRequest e)
            {
                ReviewService.ReviewCompleted -= HandleReviewCompleted;

                didReviewCompletedFire = true;
                reviewCompletedTCS.SetResult(e);
            }
        }