public async Task <CustomerSignUpResponse> SignUpCustomerAsync(CustomerSignUpRequest userSignUpRequest) { CustomerSignUpResponse response = null; PhoneNumber phoneNumber = new PhoneNumber(userSignUpRequest.PhoneCode, userSignUpRequest.PhoneNumber); EmailAddress emailAddress = new EmailAddress(userSignUpRequest.EmailAddress); Password password = new Password(userSignUpRequest.Password); Customer customer = new Customer(emailAddress, phoneNumber, password); CustomerSignUpResult customerSignUpResult = await this.CustomerSignUpService.SignUpCustomerAsync(customer); if (customerSignUpResult.CustomerSignUpStatus == CustomerSignUpStatus.Registered) { await Task.Run(async() => { long otp = await GenerateOTPAsync(customerSignUpResult.CustomerId); SMSService.SendSMS(string.Format(CustomerLiteral.PHONENUMBER_VERIFICATION_SMS, customer.PhoneNumber.PhoneNumberWithCode, otp) , customer.PhoneNumber.PhoneNumberWithCode); }); } response = new CustomerSignUpResponse { CustomerId = customerSignUpResult.CustomerId }; return(response); }
public async Task SignUpCustomerAysnc_success() { // arrange int customerId = 1; long otp = 965876; DateTime validUpTo = DateTime.UtcNow.AddMinutes(5); CustomerSignUpRequest userSignUpRequest = new CustomerSignUpRequest { EmailAddress = "*****@*****.**", Password = "******", PhoneCode = "+91", PhoneNumber = "9544856521" }; CustomerSignUpResult signUpResult = new CustomerSignUpResult(customerId); CustomerServiceMock.Setup(service => service.SignUpCustomerAsync(It.IsAny <Customer>())).Returns(Task.FromResult <CustomerSignUpResult>(signUpResult)); SharedUtilitiesMock.Setup(utilities => utilities.GenerateOTPHaving(6)).Returns(otp); CustomerRepositoryMock.Setup(repository => repository.GenerateSignUpOTPAsync(It.IsAny <CustomerOTP>())).Returns(Task.FromResult <bool>(true)); AccountService accountService = new AccountService(CustomerServiceMock.Object, SMSServiceMock.Object, CustomerRepositoryMock.Object, SharedUtilitiesMock.Object, LoggerMock.Object); // act CustomerSignUpResponse response = await accountService.SignUpCustomerAsync(userSignUpRequest); // assert Assert.Equal(customerId, response.CustomerId); }
public async Task <CustomerSignUpResult> AddAsync(Customer customer) { CustomerSignUpResult customerSignUpResult = null; var spName = "spCustomerSignUp"; var spParams = new DynamicParameters(); spParams.Add("@EmailAddress", customer.EmailAddress.Value); spParams.Add("@PhoneCode", customer.PhoneNumber.PhoneCode); spParams.Add("@PhoneNumber", customer.PhoneNumber.Number); spParams.Add("@Password", customer.Password.Value); spParams.Add("@CustomerId", customer.CustomerId, null, ParameterDirection.Output); using (IDbConnection connection = ConnectionFactory.SQLConnection) { await connection.ExecuteAsync(spName, spParams, commandType : CommandType.StoredProcedure); int customerId = spParams.Get <int>("@CustomerId"); customerSignUpResult = new CustomerSignUpResult(customerId); return(customerSignUpResult); } }