protected override Task <bool> GetJsonAsync(IOwinEnvironment context, IClient client, CancellationToken cancellationToken) { var viewModelBuilder = new RegisterViewModelBuilder(_configuration.Web.Register); var registerViewModel = viewModelBuilder.Build(); return(JsonResponse.Ok(context, registerViewModel)); }
public void MarketingOptInPresent() { var viewModel = new RegisterViewModelBuilder().Build(); var result = new IndexViewBuilder().With(viewModel).Render(); var acceptUpdatesCheckBox = result.GetElementbyId("AcceptUpdates"); acceptUpdatesCheckBox.Should().NotBeNull(); acceptUpdatesCheckBox.Attributes["checked"].Should().NotBeNull(); acceptUpdatesCheckBox.ParentNode.InnerText.Should().Be("I'd like to receive the latest careers news and updates"); }
public void Us796_Ac1_DefaultCommunicationPreferences() { Candidate candidate = null; var candidateService = new Mock <ICandidateService>(); candidateService.Setup(cs => cs.Register(It.IsAny <Candidate>(), It.IsAny <string>())).Callback <Candidate, string>((c, s) => { candidate = c; }); var provider = new CandidateServiceProviderBuilder().With(candidateService).Build(); var viewModel = new RegisterViewModelBuilder().Build(); var registered = provider.Register(viewModel); candidate.Should().NotBeNull(); candidate.CommunicationPreferences.Should().NotBeNull(); { var preferences = candidate.CommunicationPreferences.ApplicationStatusChangePreferences; preferences.Should().NotBeNull(); preferences.EnableEmail.Should().BeTrue(); preferences.EnableText.Should().BeTrue(); } { var preferences = candidate.CommunicationPreferences.ExpiringApplicationPreferences; preferences.Should().NotBeNull(); preferences.EnableEmail.Should().BeTrue(); preferences.EnableText.Should().BeTrue(); } { var preferences = candidate.CommunicationPreferences.MarketingPreferences; preferences.Should().NotBeNull(); preferences.EnableEmail.Should().BeTrue(); preferences.EnableText.Should().BeTrue(); } { var preferences = candidate.CommunicationPreferences.SavedSearchPreferences; preferences.Should().NotBeNull(); preferences.EnableEmail.Should().BeTrue(); preferences.EnableText.Should().BeFalse(); } candidate.CommunicationPreferences.VerifiedMobile.Should().BeFalse(); candidate.CommunicationPreferences.MobileVerificationCode.Should().BeNullOrEmpty(); registered.Should().BeTrue(); }
public void Us773_DefaultHelpPreferences() { Candidate candidate = null; var candidateService = new Mock <ICandidateService>(); candidateService.Setup(cs => cs.Register(It.IsAny <Candidate>(), It.IsAny <string>())).Callback <Candidate, string>((c, s) => { candidate = c; }); var provider = new CandidateServiceProviderBuilder().With(candidateService).Build(); var viewModel = new RegisterViewModelBuilder().Build(); var registered = provider.Register(viewModel); candidate.Should().NotBeNull(); candidate.HelpPreferences.Should().NotBeNull(); candidate.HelpPreferences.ShowSearchTour.Should().BeTrue(); registered.Should().BeTrue(); }
public void Us738_DoesNotAcceptUpdates() { Candidate candidate = null; var candidateService = new Mock <ICandidateService>(); candidateService.Setup(cs => cs.Register(It.IsAny <Candidate>(), It.IsAny <string>())).Callback <Candidate, string>((c, s) => { candidate = c; }); var provider = new CandidateServiceProviderBuilder().With(candidateService).Build(); var viewModel = new RegisterViewModelBuilder().DoesNotAcceptUpdates().Build(); var registered = provider.Register(viewModel); candidate.Should().NotBeNull(); candidate.CommunicationPreferences.Should().NotBeNull(); candidate.CommunicationPreferences.AllowEmailMarketing.Should().BeFalse(); candidate.CommunicationPreferences.AllowMobileMarketing.Should().BeFalse(); registered.Should().BeTrue(); }
public void Us519_Ac1_DefaultMarketingPreferencesEmailOnly() { Candidate candidate = null; var candidateService = new Mock <ICandidateService>(); candidateService.Setup(cs => cs.Register(It.IsAny <Candidate>(), It.IsAny <string>())).Callback <Candidate, string>((c, s) => { candidate = c; }); var provider = new CandidateServiceProviderBuilder().With(candidateService).Build(); var viewModel = new RegisterViewModelBuilder().Build(); var registered = provider.Register(viewModel); candidate.Should().NotBeNull(); candidate.CommunicationPreferences.Should().NotBeNull(); candidate.CommunicationPreferences.AllowEmailMarketing.Should().BeTrue(); candidate.CommunicationPreferences.AllowMobileMarketing.Should().BeFalse(); candidate.CommunicationPreferences.VerifiedMobile.Should().BeFalse(); candidate.CommunicationPreferences.MobileVerificationCode.Should().BeNullOrEmpty(); registered.Should().BeTrue(); }
private async Task <IAccount> InstantiateLocalAccount( IOwinEnvironment environment, RegisterPostModel postData, IEnumerable <string> fieldNames, Dictionary <string, string> customFields, IClient client, Func <string, CancellationToken, Task> errorHandler, CancellationToken cancellationToken) { var viewModel = new RegisterViewModelBuilder(_configuration.Web.Register).Build(); var suppliedFieldNames = fieldNames?.ToArray() ?? new string[] {}; bool hasConfirmPasswordField = viewModel.Form.Fields.Where(f => f.Name == "confirmPassword").Any(); if (hasConfirmPasswordField) { if (postData.Password != postData.ConfirmPassword) { await errorHandler($"Passwords do not match.", cancellationToken); return(null); } } foreach (var field in viewModel.Form.Fields) { if (field.Required && !suppliedFieldNames.Contains(field.Name, StringComparer.Ordinal)) { await errorHandler($"{field.Label} is required.", cancellationToken); return(null); } } var givenNameField = viewModel.Form.Fields.Where(f => f.Name == "givenName").SingleOrDefault(); bool isGivenNameRequired = givenNameField?.Required ?? false; if (string.IsNullOrEmpty(postData.GivenName) && !isGivenNameRequired) { postData.GivenName = "UNKNOWN"; } var surnameField = viewModel.Form.Fields.Where(f => f.Name == "surname").SingleOrDefault(); bool isSurnameRequired = surnameField?.Required ?? false; if (string.IsNullOrEmpty(postData.Surname) && !isSurnameRequired) { postData.Surname = "UNKNOWN"; } var enabledFields = viewModel.Form.Fields.Select(f => f.Name); var undefinedFields = suppliedFieldNames .Except(enabledFields); if (undefinedFields.Any()) { await errorHandler($"Unknown field '{undefinedFields.First()}'.", cancellationToken); return(null); } var newAccount = client.Instantiate <IAccount>() .SetEmail(postData.Email) .SetPassword(postData.Password) .SetGivenName(postData.GivenName) .SetSurname(postData.Surname); if (!string.IsNullOrEmpty(postData.Username)) { newAccount.SetUsername(postData.Username); } if (!string.IsNullOrEmpty(postData.MiddleName)) { newAccount.SetMiddleName(postData.MiddleName); } foreach (var item in customFields) { newAccount.CustomData.Put(item.Key, item.Value); } return(newAccount); }