public void SavedAndDraftCountIsSet() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); var applicationStatusSummaries = new Fixture().CreateMany <ApprenticeshipApplicationSummary>(25); candidateServiceProvider.Setup(x => x.GetApprenticeshipApplications(It.IsAny <Guid>(), It.IsAny <bool>())).Returns(applicationStatusSummaries); candidateServiceProvider.Setup(x => x.GetCandidate(It.IsAny <string>())).Returns(new Candidate { EntityId = Guid.Empty }); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().Build); var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(x => x.Push(UserDataItemNames.SavedAndDraftCount, It.IsAny <string>())); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Index(viewModel); response.AssertCodeAndMessage(LoginMediatorCodes.Index.Ok); var count = applicationStatusSummaries.Count(a => a.Status == ApplicationStatuses.Draft || a.Status == ApplicationStatuses.Saved); userDataProvider.Verify(x => x.Push(UserDataItemNames.SavedAndDraftCount, count.ToString(CultureInfo.InvariantCulture)), Times.Once); }
public void FailedToSendEmail() { const string phoneNumber = "0123456789"; var viewModel = new ForgottenCredentialsViewModel { ForgottenEmailViewModel = new ForgottenEmailViewModel { PhoneNumber = phoneNumber } }; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(csp => csp.RequestEmailReminder(It.IsAny <ForgottenEmailViewModel>())) .Returns(false); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ForgottenEmail(viewModel); var message = string.Format(LoginPageMessages.ForgottenEmailSent, phoneNumber); response.AssertMessage(LoginMediatorCodes.ForgottenEmail.FailedToSendEmail, message, UserMessageLevel.Success, true); }
public void CheckAllOtherResponses(AccountUnlockState accountUnlockState, string code, string message, UserMessageLevel messageLevel) { var viewModel = new AccountUnlockViewModel { EmailAddress = "*****@*****.**", AccountUnlockCode = "ABC123", Status = accountUnlockState }; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(x => x.VerifyAccountUnlockCode(It.IsAny <AccountUnlockViewModel>())) .Returns(viewModel); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Unlock(viewModel); response.Code.Should().Be(code); if (message == null) { response.Message.Should().BeNull(); } else { response.Message.Should().NotBeNull(); response.Message.Text.Should().Be(message); response.Message.Level.Should().Be(messageLevel); } }
public void ValidationError() { var viewModel = new AccountUnlockViewModel(); var mediator = new LoginMediatorBuilder().Build(); var response = mediator.Resend(viewModel); response.AssertValidationResult(LoginMediatorCodes.Resend.ValidationError); }
public void ValidationError() { var viewModel = new LoginViewModelBuilder().Build(); var mediator = new LoginMediatorBuilder().Build(); var response = mediator.Index(viewModel); response.AssertValidationResult(LoginMediatorCodes.Index.ValidationError); }
public void ValidationFailure() { var resetPasswordViewModel = new PasswordResetViewModel { PasswordResetCode = InvalidPasswordResetCode }; var mediator = new LoginMediatorBuilder().Build(); var response = mediator.ResetPassword(resetPasswordViewModel); response.AssertValidationResult(LoginMediatorCodes.ResetPassword.FailedValidation, true); }
public void AccountLocked() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder(UserStatuses.Locked).Build); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.AccountLocked); }
public void PendingActivation() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var loginResultViewModel = new LoginResultViewModelBuilder(UserStatuses.PendingActivation).Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(loginResultViewModel); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Index(viewModel); response.AssertCodeAndMessage(LoginMediatorCodes.Index.PendingActivation); }
public void LoginFailed() { var viewModel = new LoginViewModelBuilder().WithEmailAddress(LoginViewModelBuilder.ValidEmailAddress).WithPassword(LoginViewModelBuilder.InvalidPassword).Build(); const string viewModelMessage = "Invalid Email Address or Password"; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder(UserStatuses.Unknown, false).WithViewModelMessage(viewModelMessage).Build); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.LoginFailed, true, true); response.Parameters.Should().Be(viewModelMessage); }
public void MobileVerificationRequired() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var loginResultViewModel = new LoginResultViewModelBuilder().MobileVerificationRequired().Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(loginResultViewModel); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.Ok); response.ViewModel.MobileVerificationRequired.Should().BeTrue(); }
public void InvalidResetCode() { var resetPasswordViewModel = GetValidPasswordResetViewModel(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(csp => csp.VerifyPasswordReset(It.IsAny <PasswordResetViewModel>())) .Returns(new PasswordResetViewModel { IsPasswordResetCodeValid = false }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ResetPassword(resetPasswordViewModel); response.AssertValidationResult(LoginMediatorCodes.ResetPassword.InvalidResetCode); }
public void Error() { var viewModel = new AccountUnlockViewModel { EmailAddress = "*****@*****.**", ViewModelMessage = "Error", Status = AccountUnlockState.Error }; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(x => x.RequestAccountUnlockCode(It.IsAny <AccountUnlockViewModel>())).Returns(viewModel); var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(x => x.Push(It.IsAny <string>(), It.IsAny <string>())); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Resend(viewModel); response.AssertMessage(LoginMediatorCodes.Resend.ResendFailed, AccountUnlockPageMessages.AccountUnlockResendCodeFailed, UserMessageLevel.Warning, true); }
public void UserLocked() { var resetPasswordViewModel = GetValidPasswordResetViewModel(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(csp => csp.VerifyPasswordReset(It.IsAny <PasswordResetViewModel>())) .Returns(new PasswordResetViewModel { UserStatus = UserStatuses.Locked }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ResetPassword(resetPasswordViewModel); response.AssertCode(LoginMediatorCodes.ResetPassword.UserAccountLocked, true); }
public void ValidationErrors() { var forgottenPasswordViewModel = new ForgottenPasswordViewModel { EmailAddress = InvalidEmailAddress }; var mediator = new LoginMediatorBuilder().Build(); var response = mediator.ForgottenPassword(new ForgottenCredentialsViewModel { ForgottenPasswordViewModel = forgottenPasswordViewModel }); response.AssertValidationResult(LoginMediatorCodes.ForgottenPassword.FailedValidation, true); }
public void AccountEmailAddressOrUnlockCodeInvalid() { var viewModel = new AccountUnlockViewModel { EmailAddress = "*****@*****.**", ViewModelMessage = "Unknown [email protected]", Status = AccountUnlockState.AccountEmailAddressOrUnlockCodeInvalid }; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(x => x.RequestAccountUnlockCode(It.IsAny <AccountUnlockViewModel>())).Returns(viewModel); var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(x => x.Push(It.IsAny <string>(), It.IsAny <string>())); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Resend(viewModel); response.AssertMessage(LoginMediatorCodes.Resend.ResentSuccessfully, AccountUnlockPageMessages.AccountUnlockCodeMayHaveBeenResent, UserMessageLevel.Success, true); }
public void ErrorVerifyingPassword() { var resetPasswordViewModel = GetValidPasswordResetViewModel(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(csp => csp.VerifyPasswordReset(It.IsAny <PasswordResetViewModel>())) .Returns(new PasswordResetViewModel { ViewModelMessage = ErrorMessage }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ResetPassword(resetPasswordViewModel); response.AssertMessage(LoginMediatorCodes.ResetPassword.FailedToResetPassword, ErrorMessage, UserMessageLevel.Warning, true); }
public void ReturnUrl() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); const string returnUrl = "http://return.url.com"; var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(p => p.Pop(UserDataItemNames.ReturnUrl)).Returns(returnUrl); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().Build); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.ReturnUrl, true, true); response.Parameters.Should().Be(returnUrl); }
public void Ok() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().Build); candidateServiceProvider.Setup(x => x.GetApprenticeshipApplications(It.IsAny <Guid>(), It.IsAny <bool>())).Returns(new List <ApprenticeshipApplicationSummary>()); candidateServiceProvider.Setup(x => x.GetCandidate(It.IsAny <string>())).Returns(new Candidate { EntityId = Guid.Empty }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.Index(viewModel); response.AssertCodeAndMessage(LoginMediatorCodes.Index.Ok); }
public void FailedValidation() { const string phoneNumber = "NotANumber"; var viewModel = new ForgottenCredentialsViewModel { ForgottenEmailViewModel = new ForgottenEmailViewModel { PhoneNumber = phoneNumber } }; var mediator = new LoginMediatorBuilder().Build(); var response = mediator.ForgottenEmail(viewModel); response.AssertValidationResult(LoginMediatorCodes.ForgottenEmail.FailedValidation); }
public void SuccessfullResetPassword() { var resetPasswordViewModel = GetValidPasswordResetViewModel(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(csp => csp.VerifyPasswordReset(It.IsAny <PasswordResetViewModel>())) .Returns(new PasswordResetViewModel { IsPasswordResetCodeValid = true }); candidateServiceProvider.Setup(gc => gc.GetCandidate(It.IsAny <string>())) .Returns(new Candidate { EntityId = Guid.NewGuid() }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ResetPassword(resetPasswordViewModel); response.AssertMessage(LoginMediatorCodes.ResetPassword.SuccessfullyResetPassword, PasswordResetPageMessages.SuccessfulPasswordReset, UserMessageLevel.Success, true); }
public void TermsAndConditionsVersion() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); const string returnUrl = "http://return.url.com"; var configurationManager = new Mock <IConfigurationManager>(); configurationManager.Setup(x => x.GetAppSetting <string>(It.IsAny <string>())).Returns("2"); var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(p => p.Pop(UserDataItemNames.ReturnUrl)).Returns(returnUrl); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().WithAcceptedTermsAndConditionsVersion("1").Build); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).With(configurationManager).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.TermsAndConditionsNeedAccepted, true, true); response.Parameters.Should().Be(returnUrl); }
public void PasswordSent() { var forgottenPasswordViewModel = new ForgottenPasswordViewModel { EmailAddress = ValidEmailAddress }; var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup( csp => csp.RequestForgottenPasswordResetCode(It.IsAny <ForgottenPasswordViewModel>())).Returns(true); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); var response = mediator.ForgottenPassword(new ForgottenCredentialsViewModel { ForgottenPasswordViewModel = forgottenPasswordViewModel }); response.AssertCode(LoginMediatorCodes.ForgottenPassword.PasswordSent, true); }
public void ReturnUrl() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); const string returnUrl = "/localUrl/"; var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(p => p.Pop(UserDataItemNames.ReturnUrl)).Returns(returnUrl); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().Build); candidateServiceProvider.Setup(x => x.GetApprenticeshipApplications(It.IsAny <Guid>(), It.IsAny <bool>())).Returns(new List <ApprenticeshipApplicationSummary>()); candidateServiceProvider.Setup(x => x.GetCandidate(It.IsAny <string>())).Returns(new Candidate { EntityId = Guid.Empty }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.ReturnUrl, true, true); response.Parameters.Should().Be(returnUrl); }
public void PendingUsernameVerificationRequired(bool expectedValue) { // Arrange. var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); var loginResultViewModel = new LoginResultViewModelBuilder().PendingUsernameVerificationRequired(expectedValue).Build(); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(loginResultViewModel); candidateServiceProvider.Setup(x => x.GetApprenticeshipApplications(It.IsAny <Guid>(), It.IsAny <bool>())).Returns(new List <ApprenticeshipApplicationSummary>()); candidateServiceProvider.Setup(x => x.GetCandidate(It.IsAny <string>())).Returns(new Candidate { EntityId = Guid.Empty }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).Build(); // Act. var response = mediator.Index(viewModel); // Assert. response.AssertCodeAndMessage(LoginMediatorCodes.Index.Ok); response.ViewModel.PendingUsernameVerificationRequired.Should().Be(expectedValue); }
public void ApprenticeshipDetails() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); const string vacancyId = "1"; var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(p => p.Pop(CandidateDataItemNames.LastViewedVacancyId)).Returns(vacancyId); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)).Returns(new LoginResultViewModelBuilder().WithEmailAddress(LoginViewModelBuilder.ValidEmailAddress).Build); var entityId = Guid.NewGuid(); candidateServiceProvider.Setup(p => p.GetCandidate(LoginViewModelBuilder.ValidEmailAddress)).Returns(new Candidate { EntityId = entityId }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider).With(userDataProvider).Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.ApprenticeshipDetails, true, true); response.Parameters.Should().Be(vacancyId); }
public void TermsAndConditionsVersion() { var viewModel = new LoginViewModelBuilder().WithValidCredentials().Build(); const string returnUrl = "/allowedasolutoepath"; var configurationService = new Mock <IConfigurationService>(); configurationService.Setup(x => x.Get <CommonWebConfiguration>()) .Returns(new CommonWebConfiguration { TermsAndConditionsVersion = "2", VacancyResultsPerPage = 5 }); var userDataProvider = new Mock <IUserDataProvider>(); userDataProvider.Setup(p => p.Pop(UserDataItemNames.ReturnUrl)).Returns(returnUrl); var candidateServiceProvider = new Mock <ICandidateServiceProvider>(); candidateServiceProvider.Setup(p => p.Login(viewModel)) .Returns(new LoginResultViewModelBuilder().WithAcceptedTermsAndConditionsVersion("1").Build); candidateServiceProvider.Setup(x => x.GetApprenticeshipApplications(It.IsAny <Guid>(), It.IsAny <bool>())) .Returns(new List <ApprenticeshipApplicationSummary>()); candidateServiceProvider.Setup(x => x.GetCandidate(It.IsAny <string>())) .Returns(new Candidate { EntityId = Guid.Empty }); var mediator = new LoginMediatorBuilder().With(candidateServiceProvider) .With(userDataProvider) .With(configurationService) .Build(); var response = mediator.Index(viewModel); response.AssertCode(LoginMediatorCodes.Index.TermsAndConditionsNeedAccepted, true, true); response.Parameters.Should().Be(returnUrl); }