コード例 #1
0
        public void SaveErrorTest()
        {
            var settingsViewModel = new SettingsViewModel
            {
                Address = new AddressViewModel
                {
                    AddressLine1 = "Add1",
                    AddressLine2 = "Add2",
                    AddressLine3 = "Add3",
                    AddressLine4 = "Add4",
                    Postcode     = "N7 8LS"
                },
                DateOfBirth = new DateViewModel {
                    Day = DateTime.UtcNow.Day, Month = DateTime.UtcNow.Month, Year = DateTime.UtcNow.Year
                },
                PhoneNumber = "079824524523",
                Firstname   = "FN",
                Lastname    = "LN"
            };

            // ReSharper disable once RedundantAssignment
            var candidate           = new Candidate();
            var accountProviderMock = new Mock <IAccountProvider>();

            accountProviderMock.Setup(x => x.TrySaveSettings(It.IsAny <Guid>(), It.IsAny <SettingsViewModel>(), out candidate)).Returns(false);

            var accountMediator = new AccountMediatorBuilder().With(accountProviderMock.Object).Build();
            var response        = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.Code.Should().Be(AccountMediatorCodes.Settings.SaveError);
            response.ViewModel.Should().Be(settingsViewModel);
            response.Message.Text.Should().Be(AccountPageMessages.SettingsUpdateFailed);
            response.Message.Level.Should().Be(UserMessageLevel.Warning);
        }
コード例 #2
0
        public void SaveSuccessTest()
        {
            var settingsViewModel = new SettingsViewModel
            {
                Address = new AddressViewModel
                {
                    AddressLine1 = "Add1",
                    AddressLine2 = "Add2",
                    AddressLine3 = "Add3",
                    AddressLine4 = "Add4",
                    Postcode     = "N7 8LS"
                },
                DateOfBirth = new DateViewModel {
                    Day = DateTime.UtcNow.Day, Month = DateTime.UtcNow.Month, Year = DateTime.UtcNow.Year
                },
                PhoneNumber = "079824524523",
                Firstname   = "FN",
                Lastname    = "LN",
                EnableApplicationStatusChangeAlertsViaEmail = true
            };

            // ReSharper disable once RedundantAssignment
            var candidate = new Candidate();

            candidate.DisableAllOptionalCommunications();
            var accountProviderMock = new Mock <IAccountProvider>();

            accountProviderMock.Setup(x => x.TrySaveSettings(It.IsAny <Guid>(), It.IsAny <SettingsViewModel>(), out candidate)).Returns(true);

            var accountMediator = new AccountMediatorBuilder().With(accountProviderMock.Object).Build();
            var response        = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.Code.Should().Be(AccountMediatorCodes.Settings.Success);
            response.ViewModel.Should().Be(settingsViewModel);
        }
コード例 #3
0
        public void SaveSuccessTest()
        {
            var settingsViewModel = new SettingsViewModel
            {
                Address = new AddressViewModel
                {
                    AddressLine1 = "Add1",
                    AddressLine2 = "Add2",
                    AddressLine3 = "Add3",
                    AddressLine4 = "Add4",
                    Postcode     = "N7 8LS"
                },
                DateOfBirth = new DateViewModel {
                    Day = DateTime.Now.Day, Month = DateTime.Now.Month, Year = DateTime.Now.Year
                },
                PhoneNumber = "079824524523",
                Firstname   = "FN",
                Lastname    = "LN"
            };

            var candidateServiceProviderMock = new Mock <ICandidateServiceProvider>();

            candidateServiceProviderMock.Setup(x => x.GetCandidate(It.IsAny <Guid>())).Returns(new Candidate());
            var candidate           = new Candidate();
            var accountProviderMock = new Mock <IAccountProvider>();

            accountProviderMock.Setup(x => x.TrySaveSettings(It.IsAny <Guid>(), It.IsAny <SettingsViewModel>(), out candidate)).Returns(true);
            var accountMediator = new AccountMediatorBuilder().With(candidateServiceProviderMock).With(accountProviderMock.Object).Build();

            var response = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.Code.Should().Be(AccountMediatorCodes.Settings.Success);
            response.ViewModel.Should().Be(settingsViewModel);
        }
コード例 #4
0
        public void SaveValidationErrorTest()
        {
            var settingsViewModel = new SettingsViewModel();
            var accountMediator   = new AccountMediatorBuilder().Build();

            var response = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.Code.Should().Be(AccountMediatorCodes.Settings.ValidationError);
            response.ViewModel.Should().Be(settingsViewModel);
            response.ValidationResult.Should().NotBeNull();
        }
コード例 #5
0
        public void SaveValidationErrorTest()
        {
            var settingsViewModel = new SettingsViewModel();
            var accountProvider   = new Mock <IAccountProvider>();

            accountProvider.Setup(x => x.GetSettingsViewModel(It.IsAny <Guid>())).Returns(new SettingsViewModel());
            var accountMediator = new AccountMediatorBuilder().With(accountProvider.Object).Build();

            var response = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.Code.Should().Be(AccountMediatorCodes.Settings.ValidationError);
            response.ViewModel.Should().Be(settingsViewModel);
            response.ValidationResult.Should().NotBeNull();
        }
コード例 #6
0
        public void SaveSearchesSettingsSuccessWithWarning()
        {
            var savedSearchViewModels = new Fixture().Build <SavedSearchViewModel>().With(s => s.AlertsEnabled, false).CreateMany(1).ToList();
            var settingsViewModel     = new SettingsViewModelBuilder().EnableSavedSearchAlertsViaEmail(true).EnableSavedSearchAlertsViaText(true).WithSavedSearchViewModels(savedSearchViewModels).Build();

            settingsViewModel.Mode = SettingsViewModel.SettingsMode.SavedSearches;

            // ReSharper disable once RedundantAssignment
            var candidate = new Candidate();

            candidate.DisableAllOptionalCommunications();
            var accountProviderMock = new Mock <IAccountProvider>();

            accountProviderMock.Setup(x => x.TrySaveSettings(It.IsAny <Guid>(), It.IsAny <SettingsViewModel>(), out candidate)).Returns(true);

            var accountMediator = new AccountMediatorBuilder().With(accountProviderMock.Object).Build();
            var response        = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.AssertMessage(AccountMediatorCodes.Settings.SuccessWithWarning, AccountPageMessages.SettingsUpdatedSavedSearchesAlertWarning, UserMessageLevel.Info, true);
        }
コード例 #7
0
        public void SaveNotificationsSettingsSuccessWithWarning()
        {
            var settingsViewModel = new SettingsViewModelBuilder().Build();

            settingsViewModel.Mode = SettingsViewModel.SettingsMode.YourAccount;

            var candidateServiceProviderMock = new Mock <ICandidateServiceProvider>();

            // ReSharper disable once RedundantAssignment
            var candidate = new Candidate();

            candidate.DisableAllOptionalCommunications();
            var accountProviderMock = new Mock <IAccountProvider>();

            accountProviderMock.Setup(x => x.TrySaveSettings(It.IsAny <Guid>(), It.IsAny <SettingsViewModel>(), out candidate)).Returns(true);

            var accountMediator = new AccountMediatorBuilder().With(candidateServiceProviderMock).With(accountProviderMock.Object).Build();
            var response        = accountMediator.SaveSettings(Guid.NewGuid(), settingsViewModel);

            response.AssertMessage(AccountMediatorCodes.Settings.SuccessWithWarning, AccountPageMessages.SettingsUpdatedNotificationsAlertWarning, UserMessageLevel.Info, true);
        }
コード例 #8
0
        public void MobileVerificationRequiredMarketing(string newPhoneNumber, bool verifiedMobile, bool allowSmsMarketing, string expectedCode)
        {
            var candidateId      = Guid.NewGuid();
            var candidate        = new CandidateBuilder(candidateId).PhoneNumber("0123456789").VerifiedMobile(verifiedMobile).Build();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns(candidate);
            var viewModel       = new SettingsViewModelBuilder().PhoneNumber(newPhoneNumber).AllowSmsMarketing(allowSmsMarketing).Build();
            var accountProvider = new AccountProviderBuilder().With(candidateService).Build();
            var mediator        = new AccountMediatorBuilder().With(accountProvider).Build();

            var result = mediator.SaveSettings(candidateId, viewModel);

            if (expectedCode == AccountMediatorCodes.Settings.MobileVerificationRequired)
            {
                result.AssertMessage(expectedCode, AccountPageMessages.MobileVerificationRequired, UserMessageLevel.Success, true);
            }
            else
            {
                result.AssertCode(expectedCode);
            }
        }
コード例 #9
0
        public void MobileVerificationRequiredCommunications(string newPhoneNumber, bool verifiedMobile, bool enableAnyTextCommunication, string expectedCode)
        {
            var candidateId      = Guid.NewGuid();
            var candidate        = new CandidateBuilder(candidateId).PhoneNumber("0123456789").VerifiedMobile(verifiedMobile).Build();
            var candidateService = new Mock <ICandidateService>();

            candidateService.Setup(cs => cs.GetCandidate(candidateId)).Returns(candidate);

            var viewModel       = new SettingsViewModelBuilder().PhoneNumber(newPhoneNumber).EnableAnyTextCommunication(enableAnyTextCommunication).EnableApplicationStatusChangeAlertsViaEmail(true).Build();
            var accountProvider = new AccountProviderBuilder().With(candidateService).Build();
            var mediator        = new AccountMediatorBuilder().With(accountProvider).Build();

            var result = mediator.SaveSettings(candidateId, viewModel);

            if (expectedCode == AccountMediatorCodes.Settings.MobileVerificationRequired)
            {
                result.AssertMessage(expectedCode, AccountPageMessages.MobileVerificationRequired, UserMessageLevel.Success, true);
            }
            else
            {
                result.AssertCodeAndMessage(expectedCode);
            }
        }