public void ShouldOrderSavedSearchAlertResultsByMostRecentlyPostedVacancy() { // Arrange. var candidate = new CandidateBuilder(new Guid()) .Build(); const int savedSearchAlertCount = 42; const int resultCount = 21; var savedSearchAlerts = GetSavedSearchAlerts(savedSearchAlertCount, resultCount); // Act. var communicationRequest = CommunicationRequestFactory.GetSavedSearchAlertCommunicationRequest( candidate, savedSearchAlerts); // Assert. communicationRequest.ContainsToken(CommunicationTokens.SavedSearchAlerts).Should().BeTrue(); var json = communicationRequest.GetToken(CommunicationTokens.SavedSearchAlerts); var actualSavedSearchAlerts = JsonConvert.DeserializeObject <List <SavedSearchAlert> >(json); foreach (var actualSavedSearchAlert in actualSavedSearchAlerts) { actualSavedSearchAlert.Results.Count.Should().Be(resultCount); actualSavedSearchAlert.Results.Should().BeInDescendingOrder(each => each.PostedDate); } }
public void Success() { var candidateId = Guid.NewGuid(); const string phoneNumber = "0123456789"; const string mobileVerificationCode = "1234"; var candidate = new CandidateBuilder(candidateId).AllowMobile(true).VerifiedMobile(false).MobileVerificationCode(mobileVerificationCode).PhoneNumber(phoneNumber).Build(); var communicationService = new Mock <ICommunicationService>(); IEnumerable <CommunicationToken> communicationTokens = new List <CommunicationToken>(0); communicationService.Setup(cs => cs.SendMessageToCandidate(candidateId, MessageTypes.SendMobileVerificationCode, It.IsAny <IEnumerable <CommunicationToken> >())).Callback <Guid, MessageTypes, IEnumerable <CommunicationToken> >((cid, mt, ct) => { communicationTokens = ct; }); var candidateWriteRepository = new Mock <ICandidateWriteRepository>(); var codeGenerator = new Mock <ICodeGenerator>(); var strategy = new SendMobileVerificationCodeStrategyBuilder().With(communicationService).With(candidateWriteRepository).With(codeGenerator).Build(); strategy.SendMobileVerificationCode(candidate); candidate.CommunicationPreferences.MobileVerificationCode.Should().Be(mobileVerificationCode); candidateWriteRepository.Verify(r => r.Save(candidate), Times.Never); candidate.CommunicationPreferences.MobileVerificationCode.Should().Be(mobileVerificationCode); communicationService.Verify(cs => cs.SendMessageToCandidate(candidateId, MessageTypes.SendMobileVerificationCode, It.IsAny <IEnumerable <CommunicationToken> >()), Times.Once); var communicationTokensList = communicationTokens.ToList(); communicationTokensList.Count.Should().Be(2); communicationTokensList.Single(ct => ct.Key == CommunicationTokens.CandidateMobileNumber).Value.Should().Be(phoneNumber); communicationTokensList.Single(ct => ct.Key == CommunicationTokens.MobileVerificationCode).Value.Should().Be(mobileVerificationCode); codeGenerator.Verify(cg => cg.GenerateNumeric(It.IsAny <int>()), Times.Never); }
public void EmptyMobileVerificationCode() { var candidateId = Guid.NewGuid(); const string mobileVerificationCode = "1234"; var candidate = new CandidateBuilder(candidateId) .EnableApplicationStatusChangeAlertsViaText(true) .VerifiedMobile(false) .MobileVerificationCode(string.Empty) .Build(); var candidateWriteRepository = new Mock <ICandidateWriteRepository>(); candidateWriteRepository.Setup(r => r.Save(It.IsAny <Candidate>())).Callback <Candidate>(c => { candidate = c; }); var codeGenerator = new Mock <ICodeGenerator>(); codeGenerator.Setup(cg => cg.GenerateNumeric(4)).Returns(mobileVerificationCode); var strategy = new SendMobileVerificationCodeStrategyBuilder().With(candidateWriteRepository).With(codeGenerator).Build(); strategy.SendMobileVerificationCode(candidate); candidate.CommunicationPreferences.MobileVerificationCode.Should().Be(mobileVerificationCode); candidate.CommunicationPreferences.MobileVerificationCodeDateCreated.Should().HaveValue(); // ReSharper disable once PossibleInvalidOperationException candidate.CommunicationPreferences.MobileVerificationCodeDateCreated.Value.Should().BeCloseTo(DateTime.UtcNow, 500); candidateWriteRepository.Verify(r => r.Save(candidate), Times.Once); }
private CandidateItem CheckForExistingPrimeCandidate(RankingVoteItem voteItem, RankingVoteItem existingVoteItem) { var existingPrimeWriteIn = Context.Candidates.FirstOrDefault(x => x.Name == voteItem.PrimeCandidateItem.Name && x.JobId == existingVoteItem.PrimeCandidateItem.JobId); var builder = new CandidateBuilder(); CandidateItem primeCandidateItem; if (existingPrimeWriteIn != null) { primeCandidateItem = builder.GetModel(existingPrimeWriteIn); } else { primeCandidateItem = new CandidateItem() { CandidateId = Guid.NewGuid(), Name = voteItem.PrimeCandidateItem.Name, JobId = existingVoteItem.PrimeCandidateItem.JobId }; } return(primeCandidateItem); }
public void ShouldSendMobileVerificationCodeReminderInConfiguredHousekeepingCycle( int housekeepingCycleInHours, int sendMobileVerificationCodeReminderAfterCycles) { // Arrange. var mockSuccessorStrategy = new Mock <IHousekeepingStrategy>(); var mockCommunicationService = new Mock <ICommunicationService>(); var strategy = new SendMobileVerificationCodeReminderStrategyBuilder() .With(mockSuccessorStrategy) .With(mockCommunicationService) .WithHousekeepingCycleInHours(housekeepingCycleInHours) .WithSendMobileVerificationCodeReminderAfterCycles(sendMobileVerificationCodeReminderAfterCycles) .Build(); var candidateId = Guid.NewGuid(); var user = new UserBuilder(candidateId).Build(); var hoursAgo = -(sendMobileVerificationCodeReminderAfterCycles * housekeepingCycleInHours); var candidate = new CandidateBuilder(candidateId) .PhoneNumber(PhoneNumber) .MobileVerificationCode(MobileVerificationCode) .MobileVerificationCodeDateCreated(DateTime.UtcNow.AddHours(hoursAgo)) .EnableAllCommunications() .Build(); // Act. strategy.Handle(user, candidate); // Assert. mockSuccessorStrategy.Verify(mock => mock.Handle(user, candidate), Times.Once); mockCommunicationService.Verify(mock => mock.SendMessageToCandidate( candidateId, MessageTypes.SendMobileVerificationCodeReminder, It.IsAny <IEnumerable <CommunicationToken> >()), Times.Once); }
public void ShouldQueueEmailAndSmsForActiveCandidate(MessageTypes messageType, UserStatuses userStatus) { // Arrange. var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableAllCommunications() .Build(); AddCandidate(candidate, userStatus); var communicationRequest = new CommunicationRequestBuilder(messageType, candidate.EntityId).Build(); // Act. Command.Handle(communicationRequest); // Assert. ShouldQueueEmail(messageType, 1); if (messageType == MessageTypes.ApprenticeshipApplicationSubmitted || messageType == MessageTypes.TraineeshipApplicationSubmitted) { ShouldQueueSms(messageType, 0); } else { ShouldQueueSms(messageType, 1); } }
public void GivenExistingCandidates_WhenGetAll_ThenReturnAllCandidates() { using (var context = new SwintakeContext(_options)) { var guidId = Guid.NewGuid(); var janneke = new CandidateBuilder() .WithId(guidId) .WithFirstName("Janneke") .WithLastName("Janssens") .WithEmail("*****@*****.**") .WithPhoneNumber("0470000000") .WithGitHubUsername("janneke") .WithLinkedIn("janneke") .Build(); IRepository <Candidate> candidateRepository = new CandidateRepository(context); //when candidateRepository.Save(janneke); IList <Candidate> searchCandidate = candidateRepository.GetAll(); //then Assert.Equal(1, searchCandidate.Count); } }
public void ShouldHandleCandidateDailyDigestContainingOneOrMoreExpiringDraft() { // Arrange. var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableAllCommunications() .Build(); AddCandidate(candidate); var expiringDrafts = new ExpiringApprenticeshipApplicationDraftsBuilder() .WithExpiringDrafts(1) .Build(); var json = JsonConvert.SerializeObject(expiringDrafts); var communicationRequest = new CommunicationRequestBuilder(MessageTypes.DailyDigest, candidate.EntityId) .WithToken(CommunicationTokens.ExpiringDrafts, json) .WithToken(CommunicationTokens.ApplicationStatusAlerts, null) .Build(); // Act. var canHandle = Command.CanHandle(communicationRequest); // Assert. canHandle.Should().BeTrue(); }
public void ShouldQueueOneEmailForMultipleExpiringDraftsAndApplicationStatusAlerts( int expiringDraftCount, int applicationStatusAlertCount) { // Arrange. var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableAllCommunications() .Build(); AddCandidate(candidate); var expiringDrafts = new ExpiringApprenticeshipApplicationDraftsBuilder() .WithExpiringDrafts(expiringDraftCount) .Build(); var applicationStatusAlerts = new ApplicationStatusAlertsBuilder() .WithApplicationStatusAlerts(applicationStatusAlertCount, ApplicationStatuses.Unsuccessful) .Build(); var communicationRequest = new CommunicationRequestBuilder(MessageTypes.DailyDigest, candidate.EntityId) .WithToken(CommunicationTokens.ExpiringDrafts, JsonConvert.SerializeObject(expiringDrafts)) .WithToken(CommunicationTokens.ApplicationStatusAlerts, JsonConvert.SerializeObject(applicationStatusAlerts)) .Build(); // Act. Command.Handle(communicationRequest); // Assert. ShouldQueueEmail(MessageTypes.DailyDigest, 1); }
public void GivenACandidate_WhenToDto_ThenReturnCandidateDtoObjectWithSameProperties() { //given var candidate = new CandidateBuilder() .WithId(Guid.NewGuid()) .WithFirstName("Janneke") .WithLastName("Janssens") .WithEmail("*****@*****.**") .WithPhoneNumber("0470000000") .WithLinkedIn("janneke") .WithGitHubUsername("janneke") .WithComment("jannekeComment") .Build(); var candidateMapper = new CandidateMapper(); //when var newDto = candidateMapper.ToDto(candidate); //then Assert.Equal(candidate.Id.ToString(), newDto.Id); Assert.Equal(candidate.FirstName, newDto.FirstName); Assert.Equal(candidate.LastName, newDto.LastName); Assert.Equal(candidate.Email, newDto.Email); Assert.Equal(candidate.PhoneNumber, newDto.PhoneNumber); Assert.Equal(candidate.LinkedIn, newDto.LinkedIn); Assert.Equal(candidate.GitHubUsername, newDto.GitHubUsername); Assert.Equal(candidate.Comment, newDto.Comment); }
public void ErrorTest(bool verifiedMobile, bool allowMobile, bool allowMobileMarketing) { //Arrange var candidateId = Guid.NewGuid(); var verificationCode = string.Empty; Candidate candidate = new CandidateBuilder(candidateId) .MobileVerificationCode(verificationCode) .EnableApplicationStatusChangeAlertsViaText(allowMobile) .VerifiedMobile(verifiedMobile).Build(); var candidateReadRepository = new Mock <ICandidateReadRepository>(); candidateReadRepository.Setup(r => r.Get(candidateId)).Returns(candidate); var candidateWriteRepository = new Mock <ICandidateWriteRepository>(); candidateWriteRepository.Setup(r => r.Save(It.IsAny <Candidate>())).Callback <Candidate>(c => { candidate = c; }); var verifyMobileStrategy = new VerifyMobileStrategyBuilder() .With(candidateReadRepository) .With(candidateWriteRepository) .Build(); //Act Action a = () => verifyMobileStrategy.VerifyMobile(candidateId, verificationCode); //Assert var errorMessage = string.Format("The mobile number associated with candidate Id: {0} does not require verification.", candidateId); a.ShouldThrow <CustomException>().WithMessage(errorMessage); a.ShouldThrow <CustomException>(); }
public void MobileCodeVerificationFailedTest() { //Arrange var candidateId = Guid.NewGuid(); const string actualVerificationCode = "1234"; const string enteredVerificationCode = "5678"; var candidate = new CandidateBuilder(candidateId) .MobileVerificationCode(actualVerificationCode) .EnableApplicationStatusChangeAlertsViaText(true) .VerifiedMobile(false) .Build(); var candidateReadRepository = new Mock <ICandidateReadRepository>(); candidateReadRepository.Setup(r => r.Get(candidateId)).Returns(candidate); var candidateWriteRepository = new Mock <ICandidateWriteRepository>(); candidateWriteRepository.Setup(r => r.Save(It.IsAny <Candidate>())).Callback <Candidate>(c => { candidate = c; }); var verifyMobileStrategy = new VerifyMobileStrategyBuilder().With(candidateReadRepository).With(candidateWriteRepository).Build(); //Act Action a = () => verifyMobileStrategy.VerifyMobile(candidateId, enteredVerificationCode); //Assert var errorMessage = string.Format("Mobile verification code {0} is invalid for candidate {1} with mobile number {2}", enteredVerificationCode, candidateId, candidate.RegistrationDetails.PhoneNumber); a.ShouldThrow <CustomException>().WithMessage(errorMessage); }
public void SuccessTest() { //Arrange Guid candidateId = Guid.NewGuid(); string verificationCode = "1234"; Candidate candidate = new CandidateBuilder(candidateId).MobileVerificationCode(verificationCode).AllowMobile(true).VerifiedMobile(false).Build(); var candidateReadRepository = new Mock <ICandidateReadRepository>(); candidateReadRepository.Setup(r => r.Get(candidateId)).Returns(candidate); //candidateReadRepository.Setup() var candidateWriteRepository = new Mock <ICandidateWriteRepository>(); candidateWriteRepository.Setup(r => r.Save(It.IsAny <Candidate>())).Callback <Candidate>(c => { candidate = c; }); var verifyMobileStrategy = new VerifyMobileStrategyBuilder().With(candidateReadRepository).With(candidateWriteRepository).Build(); //Act verifyMobileStrategy.VerifyMobile(candidateId, verificationCode); //Assert candidateWriteRepository.Verify(r => r.Save(It.IsAny <Candidate>()), Times.Once); candidate.CommunicationPreferences.AllowMobile.Should().BeTrue(); candidate.CommunicationPreferences.MobileVerificationCode.Should().BeNullOrEmpty(); candidate.CommunicationPreferences.VerifiedMobile.Should().BeTrue(); candidate.MobileVerificationRequired().Should().BeFalse(); }
public void AllowNeitherEmailNorSmsShouldNotSendMessageAndSoftDeleteDrafts() { _expiringDraftRepository.Setup(mock => mock.GetCandidatesDailyDigest()).Returns(GetDraftDigests(2, 2)); _expiringDraftRepository.Setup(mock => mock.Delete(It.IsAny <ExpiringApprenticeshipApplicationDraft>())); var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableExpiringApplicationAlertsViaEmail(false) .EnableExpiringApplicationAlertsViaText(false) .VerifiedMobile(true) .Build(); var user = new UserBuilder(candidate.EntityId) .WithStatus(UserStatuses.Active) .Build(); _candidateReadRepository.Setup(mock => mock.Get(It.IsAny <Guid>())).Returns(candidate); _userReadRepository.Setup(mock => mock.Get(It.IsAny <Guid>())).Returns(user); var batchId = Guid.NewGuid(); _communicationProcessor.SendDailyDigests(batchId); _candidateReadRepository.Verify(mock => mock.Get(It.IsAny <Guid>()), Times.Exactly(2)); _userReadRepository.Verify(mock => mock.Get(It.IsAny <Guid>()), Times.Exactly(2)); _expiringDraftRepository.Verify(mock => mock.GetCandidatesDailyDigest(), Times.Once); _expiringDraftRepository.Verify(mock => mock.Save(It.IsAny <ExpiringApprenticeshipApplicationDraft>()), Times.Exactly(4)); _serviceBus.Verify(mock => mock.PublishMessage(It.IsAny <CommunicationRequest>()), Times.Never); }
public void ShouldQueueOneEmailForMultipleSuccessfulApplicationStatusUpdates(int successfulApplicationCount) { // Arrange. var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableAllCommunications() .Build(); AddCandidate(candidate); var applicationStatusAlerts = new ApplicationStatusAlertsBuilder() .WithApplicationStatusAlerts(successfulApplicationCount, ApplicationStatuses.Successful) .Build(); var json = JsonConvert.SerializeObject(applicationStatusAlerts); var communicationRequest = new CommunicationRequestBuilder(MessageTypes.DailyDigest, candidate.EntityId) .WithToken(CommunicationTokens.ExpiringDrafts, null) .WithToken(CommunicationTokens.ApplicationStatusAlerts, json) .Build(); // Act. Command.Handle(communicationRequest); // Assert. ShouldQueueEmail(MessageTypes.DailyDigest, 1); }
public void ShouldQueueOneSmsForOneOrMoreExpiringDrafts( int expiringDraftCount, MessageTypes expectedMessageType) { // Arrange. var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableAllCommunications() .Build(); AddCandidate(candidate); var expiringDrafts = new ExpiringApprenticeshipApplicationDraftsBuilder() .WithExpiringDrafts(expiringDraftCount) .Build(); var json = JsonConvert.SerializeObject(expiringDrafts); var communicationRequest = new CommunicationRequestBuilder(MessageTypes.DailyDigest, candidate.EntityId) .WithToken(CommunicationTokens.ExpiringDrafts, json) .WithToken(CommunicationTokens.ApplicationStatusAlerts, null) .Build(); // Act. Command.Handle(communicationRequest); // Assert. ShouldQueueSms(expectedMessageType, 1); }
public void GivenValidCode_DefaultViewModelIsReturned() { //Arrange var candidateId = Guid.NewGuid(); var candidateMock = new CandidateBuilder(candidateId) .EnableApplicationStatusChangeAlertsViaText(true) .PhoneNumber(PhoneNumber) .VerifiedMobile(false) .Build(); var candidateServiceMock = new Mock <ICandidateService>(); candidateServiceMock.Setup(cs => cs.GetCandidate(candidateId)).Returns(candidateMock); candidateServiceMock.Setup(cs => cs.SendMobileVerificationCode(candidateMock)); var viewModel = new VerifyMobileViewModelBuilder().PhoneNumber(PhoneNumber).Build(); var provider = new AccountProviderBuilder().With(candidateServiceMock).Build(); //Act var result = provider.SendMobileVerificationCode(candidateId, viewModel); //Assert result.Status.Should().Be(VerifyMobileState.Ok); result.HasError().Should().BeFalse(); result.ViewModelMessage.Should().BeNullOrEmpty(); }
public void GivenEntityStateError_ThenValidViewModelIsReturned(string errorCode, VerifyMobileState verifyMobileState) { //Arrange var candidateId = Guid.NewGuid(); var candidateMock = new CandidateBuilder(candidateId) .EnableApplicationStatusChangeAlertsViaText(true) .PhoneNumber(PhoneNumber) .VerifiedMobile(false) .Build(); var candidateServiceMock = new Mock <ICandidateService>(); candidateServiceMock.Setup(cs => cs.GetCandidate(candidateId)).Returns(candidateMock); candidateServiceMock.Setup(cs => cs.SendMobileVerificationCode(candidateMock)).Throws(new CustomException(errorCode)); var viewModel = new VerifyMobileViewModelBuilder().PhoneNumber(PhoneNumber).Build(); var provider = new AccountProviderBuilder().With(candidateServiceMock).Build(); //Act var result = provider.SendMobileVerificationCode(candidateId, viewModel); //Assert result.Status.Should().Be(verifyMobileState); result.HasError().Should().BeTrue(); result.ViewModelMessage.Should().NotBeNull(); }
public void AllowNeitherEmailNorSmsShouldNotSendMessageAndSoftDeleteAlerts() { var savedSearchAlertRepository = new Mock <ISavedSearchAlertRepository>(); savedSearchAlertRepository.Setup(x => x.GetCandidatesSavedSearchAlerts()).Returns(GetSavedSearchAlerts(2, 2)); var candidateReadRepository = new Mock <ICandidateReadRepository>(); var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableSavedSearchAlertsViaEmail(false) .EnableSavedSearchAlertsViaText(false) .Build(); candidateReadRepository.Setup(x => x.Get(It.IsAny <Guid>())).Returns(candidate); var userReadRepository = new Mock <IUserReadRepository>(); var user = new UserBuilder(candidate.EntityId).WithStatus(UserStatuses.Active).Build(); userReadRepository.Setup(x => x.Get(It.IsAny <Guid>())).Returns(user); var sendSavedSearchAlertsStrategy = new SendSavedSearchAlertsStrategyBuilder() .With(savedSearchAlertRepository) .With(candidateReadRepository) .With(userReadRepository) .Build(); var communicationProcessor = new CommunicationProcessor(null, sendSavedSearchAlertsStrategy); var batchId = Guid.NewGuid(); communicationProcessor.SendSavedSearchAlerts(batchId); savedSearchAlertRepository.Verify(x => x.GetCandidatesSavedSearchAlerts(), Times.Once); candidateReadRepository.Verify(x => x.Get(It.IsAny <Guid>()), Times.Exactly(2)); userReadRepository.Verify(x => x.Get(It.IsAny <Guid>()), Times.Exactly(2)); savedSearchAlertRepository.Verify(x => x.Save(It.IsAny <SavedSearchAlert>()), Times.Exactly(4)); }
public void TestBuildCandidateNoNameFails() { var builder = new CandidateBuilder(); ValidationResults r = Validation.Validate(builder); Assert.IsFalse(r.IsValid); }
public List <VotingApp.Models.CandidateItem> GetCanidates() { var _context = new VotingContext(); var _builder = new CandidateBuilder(); var canindates = _context.Candidates.AsNoTracking().Include("Job"); return(canindates.Select(_builder.GetModel).ToList()); }
public SmsRequest Build() { var candidateId = Guid.NewGuid(); var candidate = new CandidateBuilder(candidateId).Build(); var communicationRequest = CommunicationRequestFactory.GetCommunicationMessage(candidate, _expiringDrafts); var smsRequest = new SmsRequestBuilder().WithMessageType(MessageTypes.DailyDigest).WithTokens(communicationRequest.Tokens).Build(); return(smsRequest); }
public EmailRequest Build() { var candidateId = Guid.NewGuid(); var candidate = new CandidateBuilder(candidateId).Build(); var communicationRequest = CommunicationRequestFactory.GetDailyDigestCommunicationRequest(candidate, _expiringDrafts, _applicationStatusAlerts); var emailRequest = new EmailRequestBuilder().WithMessageType(MessageTypes.DailyDigest).WithTokens(communicationRequest.Tokens).Build(); return(emailRequest); }
[TestCase(true, true, false)] // sms, verified mobile public void ShouldRequireMobileVerification(bool enableAnyText, bool verifiedMobile, bool expected) { var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableOneCommunicationPreferenceViaText(enableAnyText) .VerifiedMobile(verifiedMobile) .Build(); candidate.MobileVerificationRequired().Should().Be(expected); }
[TestCase(true, false, false, true)] // email only public void ShouldSendSavedSearchAlerts(bool enableEmail, bool enableText, bool verifiedMobile, bool expected) { var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableSavedSearchAlertsViaEmail(enableEmail) .EnableSavedSearchAlertsViaText(enableText) .VerifiedMobile(verifiedMobile) .Build(); candidate.ShouldSendSavedSearchAlerts().Should().Be(expected); }
public void GivenIRegisteredAnAccountButDidNotActivateIt() { var candidate = new CandidateBuilder(BindingData.UserEmailAddress) .Build(); new UserBuilder(BindingData.UserEmailAddress, UserStatuses.PendingActivation) .WithActivationCode(BindingData.ActivationCode).Build(); SetTokens(candidate); }
public void GivenIMadeTwoUnsuccessfulLoginAttempts() { var candidate = new CandidateBuilder(BindingData.UserEmailAddress) .Build(); new UserBuilder(BindingData.UserEmailAddress) .WithLoginIncorrectAttempts(2).Build(); SetTokens(candidate); }
public void GivenIRegisteredAnAccountAndActivatedIt() { var candidate = new CandidateBuilder(BindingData.UserEmailAddress) .Build(); new UserBuilder(BindingData.UserEmailAddress) .Build(); SetTokens(candidate); }
[TestCase(false, true, true, true)] // // sms only, verified mobile public void ShouldAllowCommunication(bool enableAnyEmail, bool enableAnyText, bool verifiedMobile, bool expected) { var candidate = new CandidateBuilder(Guid.NewGuid()) .EnableOneCommunicationPreferenceViaEmail(enableAnyEmail) .EnableOneCommunicationPreferenceViaText(enableAnyText) .VerifiedMobile(verifiedMobile) .Build(); candidate.AllowsCommunication().Should().Be(expected); }
public void NewUserRegistration() { const string emailAddress = "*****@*****.**"; const string password = "******"; var candidate = new CandidateBuilder(Guid.Empty).EmailAddress(emailAddress).Build(); var strategy = new RegisterCandidateStrategyBuilder().Build(); strategy.RegisterCandidate(candidate, password); }