Example #1
0
        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();
        }
Example #5
0
        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();
        }
Example #6
0
        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();
        }
Example #7
0
        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);
        }