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); }
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); }
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()); }
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); }
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()); }
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); }
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); }
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()); }
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); }
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); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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); }
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); }