public async Task <IClientAccount> RegisterClientAsync(string email, string firstName, string lastName, string phone, string password, string hint, string clientInfo, string ip, string changer, string language) { IClientAccount clientAccount = ClientAccount.Create(email, phone); clientAccount = await _clientAccountsRepository.RegisterAsync(clientAccount, password); var personalData = FullPersonalData.Create(clientAccount, firstName, lastName, hint); await _personalDataRepository.SaveAsync(personalData); await SetDefaultAssetGroups(clientAccount.Id); var fullname = personalData.GetFullName(); var logEvent = RegistrationLogEvent.Create(clientAccount.Id, email, fullname, phone, clientInfo, ip); await _registrationLogs.RegisterEventAsync(logEvent); await _auditLogRepository.AddAuditRecordAsync(clientAccount.Id, null, personalData, AuditRecordType.PersonalData, changer); await _srvEmailsFacade.SendWelcomeEmail(clientAccount.Email, clientAccount.Id); foreach (var registrationConsumer in _registrationConsumers) { registrationConsumer.ConsumeRegistration(clientAccount, ip, language); } return(clientAccount); }
public async Task OptionalFields_AreAdded_ToUserIdentity() { //arrange var client = new ClientAccount { Email = "*****@*****.**", Id = "test" }; var personalData = new FullPersonalData { FirstName = "test", LastName = "test", ContactPhone = "11", Country = "Test" }; //act var personalDataService = Substitute.For <IPersonalDataService>(); personalDataService.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(personalData); var userManager = CreateUserManager(personalDataService); var result = await userManager.CreateUserIdentityAsync(client.Id, client.Email, "test"); //assert Assert.Equal(personalData.FirstName, result.GetClaim(OpenIdConnectConstants.Claims.GivenName)); Assert.Equal(personalData.LastName, result.GetClaim(OpenIdConnectConstants.Claims.FamilyName)); Assert.Equal(client.Email, result.GetClaim(OpenIdConnectConstants.Claims.Email)); Assert.Equal(personalData.Country, result.GetClaim(OpenIdConnectConstantsExt.Claims.Country)); Assert.Equal(7, result.Claims.Count()); }
public async Task HalfCompletedAccount_CompletionPercentage_Is_Correct() { //data var fullPersonalData = new FullPersonalData { FirstName = "test", LastName = "test", City = "test", Address = "test" }; var kycDocuments = new List <KycDocument> { new KycDocument { Type = KycDocumentTypes.ProofOfAddress }, new KycDocument { Type = KycDocumentTypes.BankAccount } }; var personalDataRepo = Substitute.For <IPersonalDataRepository>(); personalDataRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fullPersonalData); var kycDocRepo = Substitute.For <IKycDocumentsRepository>(); kycDocRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(kycDocuments); var profileActionHandler = CreateProfileActionHandler(personalDataRepo, kycDocRepo); //act var completionPercentage = await profileActionHandler.GetStatusBarModelAsync(); Assert.Equal("50%", completionPercentage.CompletionPercentage); }
public async Task EmptyAccount_CompletionPercentage_Is_Correct() { //data var fullPersonalData = new FullPersonalData(); var kycDocuments = new List <KycDocument>(); var personalDataRepo = Substitute.For <IPersonalDataRepository>(); personalDataRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fullPersonalData); var kycDocRepo = Substitute.For <IKycDocumentsRepository>(); kycDocRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(kycDocuments); var profileActionHandler = CreateProfileActionHandler(personalDataRepo, kycDocRepo); //act var completionPercentage = await profileActionHandler.GetStatusBarModelAsync(); Assert.Equal("0%", completionPercentage.CompletionPercentage); }
public async Task Email_IsRequired_ForUserIdentity() { //arrange var client = new ClientAccount { Email = null, Id = "test" }; var personalData = new FullPersonalData(); //act var personalDataService = Substitute.For <IPersonalDataService>(); personalDataService.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(personalData); var userManager = CreateUserManager(personalDataService); //assert await Assert.ThrowsAsync <ArgumentNullException>( async() => await userManager.CreateUserIdentityAsync(client.Id, client.Email, client.Email)); }
public async Task <IClientAccount> RegisterClientAsync(string email, string fullname, string phone, string password, string hint, string clientInfo, string ip, string changer, double?iosVersion = null) { IClientAccount clientAccount = ClientAccount.Create(email, phone); clientAccount = await _clientAccountsRepository.RegisterAsync(clientAccount, password); await _clientSettingsRepository.SetSettings(clientAccount.Id, new HashedPwdSettings { IsPwdHashed = true }); var personalData = FullPersonalData.Create(clientAccount, fullname, hint); await _personalDataRepository.SaveAsync(personalData); await SetDefaultAssetGroups(clientAccount.Id, iosVersion); var logEvent = RegistrationLogEvent.Create(clientAccount.Id, email, fullname, phone, clientInfo, ip); await _registrationLogs.RegisterEventAsync(logEvent); await _auditLogRepository.AddAuditRecordAsync(clientAccount.Id, null, personalData, AuditRecordType.PersonalData, changer); await _srvEmailsFacade.SendWelcomeEmail(clientAccount.Email, clientAccount.Id); await _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetGeolocation, new SetGeolocationContext(clientAccount.Id, ip)); await _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetReferralCode, new SetReferralCodeContext(clientAccount.Id, ip)); await _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetAntiFraudRecord, new SetAntiFraudContext(clientAccount.Id, ip, email, fullname, phone)); return(clientAccount); }