Exemplo n.º 1
0
        public void RedirectToCorrectUrl_WhenCreateReviewIsSuccessful()
        {
            var args = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view = new Mock <ICreateReviewView>();
            var createReviewResult = new Mock <IDataModifiedResult>();

            createReviewResult.Setup(r => r.Successful)
            .Returns(true);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(r => r.CreateReview(It.IsAny <IBeerReview>()))
            .Returns(createReviewResult.Object);
            var imgUpload = new Mock <IImageUploadService>();

            imgUpload.Setup(img => img.UploadImage(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns((string)null);
            var mockedResponse = new MockedHttpResponse();

            var presenter = new CreateReviewPresenter(reviewService.Object, imgUpload.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(mockedResponse)
            };

            view.Raise(v => v.OnCreateReview += null, view.Object, args);

            Assert.AreEqual("/Reviews/My", mockedResponse.RedirectUrl);
        }
Exemplo n.º 2
0
        public void CallRedirectWithCorrectParams_WhenRequiresVerification()
        {
            var expectedUrl = $"TwoFactorAuthenticationSignIn?ReturnUrl={ReturnUrl}&RememberMe={IsPersistent}";

            var mockedView  = new Mock <ILoginView>();
            var mockedArgs  = GetMockedEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.PasswordSignIn(Email, Password, IsPersistent))
            .Returns(SignInStatus.RequiresVerification);

            var mockedIdentityHelper = new Mock <IIdentityHelper>();
            var mockedResponse       = new MockedHttpResponse();
            var presenter            = new LoginPresenter(userService.Object, mockedIdentityHelper.Object, mockedView.Object)
            {
                HttpContext = new MockedHttpContextBase(mockedResponse)
            };

            presenter.HttpContext.Request.QueryString.Add(ReturnUrlKey, ReturnUrl);

            mockedView.Raise(x => x.OnLogin += null, mockedView.Object, mockedArgs.Object);

            userService.Verify(f => f.PasswordSignIn(Email, Password, IsPersistent), Times.Once());
            StringAssert.Contains(expectedUrl, mockedResponse.RedirectUrl);
        }
Exemplo n.º 3
0
        public void Hide_SuccessMessage()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);
            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageVisible = false, Times.Once());
        }
Exemplo n.º 4
0
        public void RedirectToCorrectPage_WhenRegisterSucceeds()
        {
            var          query        = this.Fixture.Create <string>();
            var          returnUrl    = this.Fixture.Create <string>();
            const string returnUrlKey = "ReturnUrl";

            var view        = new Mock <IRegisterView>();
            var args        = this.GetMockedEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Success);

            var identityHelper = new Mock <IIdentityHelper>();

            identityHelper.Setup(i => i.GetReturnUrl(query))
            .Returns(returnUrl);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            presenter.HttpContext.Request.QueryString.Add(returnUrlKey, query);

            view.Raise(v => v.OnRegister += null, view.Object, args);

            Assert.AreEqual(returnUrl, httpResponse.RedirectUrl);
        }
Exemplo n.º 5
0
        public void Call_GetReviewsForUserWithCorrectParamsOnce()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(args.UserId, args.StartRowIndex, args.PageSize))
            .Returns(expectedReviews);


            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            reviewService.Verify(r => r.GetReviewsForUser(args.UserId, args.StartRowIndex, args.PageSize), Times.Once());
        }
Exemplo n.º 6
0
        public void Set_ViewModelTotalCountPropertyToReturnValueFromCountUserReviews()
        {
            var expectedTotalCount = this.Fixture.Create <int>();
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);
            reviewService.Setup(s => s.CountUserReviews(It.IsAny <string>()))
            .Returns(expectedTotalCount);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            Assert.AreEqual(expectedTotalCount, viewModel.TotalCount);
        }
Exemplo n.º 7
0
        public void Set_ModelReviewsCorrectly()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            Assert.AreSame(view.Object.Model.Reviews, expectedReviews);
        }
Exemplo n.º 8
0
        public void CallUserServiceChangePasswordMethod_WithCorrectParameters()
        {
            var expectedId  = this.Fixture.Create <string>();
            var expectedOld = this.Fixture.Create <string>();
            var expectedNew = this.Fixture.Create <string>();

            var view = new Mock <IManagePasswordView>();
            var args = new Mock <IChangePasswordEventArgs>();

            args.Setup(a => a.UserId).Returns(expectedId);
            args.Setup(a => a.CurrentPassword).Returns(expectedOld);
            args.Setup(a => a.NewPassword).Returns(expectedNew);

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.ChangePassword(expectedId, expectedOld, expectedNew))
            .Returns(IdentityResult.Success);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new ManagePasswordPresenter(userService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ChangePassword += null, view.Object, args.Object);

            userService.Verify(s => s.ChangePassword(expectedId, expectedOld, expectedNew), Times.Once());
        }
Exemplo n.º 9
0
        public void CatchUpdateExceptionAndSetViewProperties()
        {
            var expectedMessage = this.Fixture.Create <string>();

            var args = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();

            var view = new Mock <IMyReviewsView>();

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            result.Setup(r => r.Errors).Returns(new[] { expectedMessage });

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageText    = expectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Exemplo n.º 10
0
        public void SetViewPropertiesCorrectly()
        {
            const string ExpectedMessage = "Review successfully updated!";
            var          args            = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();

            var view = new Mock <IMyReviewsView>();

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(true);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageText    = ExpectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Exemplo n.º 11
0
        public void SetViewProperties_WhenResultIsNotSuccessfull()
        {
            var expectedMessage = this.Fixture.Create <string>();

            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);

            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            result.Setup(r => r.Errors).Returns(new[] { expectedMessage });

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            view.VerifySet(v => v.SuccessMessageText    = expectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Exemplo n.º 12
0
        public void FilterViewModelsReviewsByDeletion()
        {
            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);
            review.Setup(r => r.IsDeleted)
            .Returns(true);

            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(true);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            CollectionAssert.IsEmpty(viewModel.Reviews);
        }
Exemplo n.º 13
0
        public void CallServiceDeleteReviewMethodOnce_WithCorrectParameter()
        {
            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);
            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            reviewService.Verify(s => s.DeleteReview(reviewId), Times.Once);
        }
Exemplo n.º 14
0
        public void RedirectToCorrectUrl_WhenResultSucceeds()
        {
            var view        = new Mock <IManagePasswordView>();
            var userService = new Mock <IUserService>();
            var args        = new Mock <IChangePasswordEventArgs>();

            userService.Setup(s => s.ChangePassword(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(IdentityResult.Success);

            var httpResponse = new MockedHttpResponse();

            var presenter = new ManagePasswordPresenter(userService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ChangePassword += null, view.Object, args.Object);

            Assert.AreEqual("~/Account/Manage?m=ChangePwdSuccess", httpResponse.RedirectUrl);
        }
Exemplo n.º 15
0
        public void CallUserServiceRegisterUserMethod_WithCorrectParameters()
        {
            var view           = new Mock <IRegisterView>();
            var identityHelper = new Mock <IIdentityHelper>();
            var args           = this.GetMockedEventArgs();

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Failed(new string[1]));

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.OnRegister += null, view.Object, args);

            userService.Verify(s => s.RegisterUser(args.UserName, args.Email, args.Password), Times.Once());
        }
Exemplo n.º 16
0
        public void SetViewErrors_WhenRegisterFails()
        {
            var expectedMessage = this.Fixture.Create <string>();
            var view            = new Mock <IRegisterView>();
            var identityHelper  = new Mock <IIdentityHelper>();
            var args            = this.GetMockedEventArgs();

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RegisterUser(args.UserName, args.Email, args.Password))
            .Returns(IdentityResult.Failed(new[] { expectedMessage }));

            var httpResponse = new MockedHttpResponse();
            var presenter    = new RegisterPresenter(userService.Object, identityHelper.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.OnRegister += null, view.Object, args);

            view.VerifySet(v => v.ErrorMessageText = expectedMessage, Times.Once());
        }
Exemplo n.º 17
0
        public void CallRedirectWithCorrectParams_WhenLockedOut()
        {
            const string LockoutUrl = "Lockout";

            var mockedView  = new Mock <ILoginView>();
            var mockedArgs  = GetMockedEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.PasswordSignIn(Email, Password, IsPersistent))
            .Returns(SignInStatus.LockedOut);

            var mockedIdentityHelper = new Mock <IIdentityHelper>();
            var mockedResponse       = new MockedHttpResponse();
            var presenter            = new LoginPresenter(userService.Object, mockedIdentityHelper.Object, mockedView.Object)
            {
                HttpContext = new MockedHttpContextBase(mockedResponse)
            };

            mockedView.Raise(x => x.OnLogin += null, mockedView.Object, mockedArgs.Object);

            StringAssert.Contains(LockoutUrl, mockedResponse.RedirectUrl);
        }
Exemplo n.º 18
0
        public void CallUpdateReviewMethodOnce()
        {
            var args   = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view   = new Mock <IMyReviewsView>();
            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            reviewService.Verify(s => s.UpdateReview(args.BeerReview), Times.Once);
        }