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);
        }
示例#2
0
        public void ValidationError()
        {
            var viewModel = new LoginViewModelBuilder().Build();

            var mediator = new LoginMediatorBuilder().Build();
            var response = mediator.Index(viewModel);

            response.AssertValidationResult(LoginMediatorCodes.Index.ValidationError);
        }
示例#3
0
        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);
        }
示例#5
0
        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();
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#9
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
        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);
        }
示例#12
0
        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);
        }
示例#13
0
        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);
        }