public async Task ValidateCustomerWhenCustomerhasNullFirstname_ReturnsFalse() { AfiCustomer customer = _fixture.Create <AfiCustomer>(); customer.FirstName = null; var result = await _validationService.ValidateCustomerEntity(customer); Assert.False(result); }
public async Task ValidateCustomerWhenCustomerhasNullEmailandDob_ReturnsFalse() { AfiCustomer customer = _fixture.Create <AfiCustomer>(); customer.Email = null; customer.Dob = null; var result = await _validationService.ValidateCustomerEntity(customer); Assert.False(result); }
public async Task <int> RegisterCustomer([FromBody] AfiCustomer customer) { if (await _afiCustomerValidationService.ValidateCustomerEntity(customer)) { return(await _afiCustomerService.RegisterAfiCustomer(customer)); } else { //Invalid Condition returns -1 return(await Task.FromResult(-1)); } }
public async Task ValidateCustomerWhenCustomerhasValidPolicyReferenceNumber_returnstrue(string validPolicy) { _fixture.Customize <AfiCustomer>(c => c.With(p => p.SurName, "Murphy") .With(p => p.FirstName, "Richard") .With(p => p.Dob, DateTime.Now) .With(p => p.AfiCustomerID, 1) .With(p => p.PolicyReferenceNumber, "AD-234543") .With(p => p.Email, "*****@*****.**")); AfiCustomer customer = _fixture.Create <AfiCustomer>(); customer.PolicyReferenceNumber = validPolicy; customer.Dob = null; var result = await _validationService.ValidateCustomerEntity(customer); Assert.True(result); }
public async Task ValidateCustomerWhenCustomerAgeIsLessThan18_returnsfalse(DateTime dob) { _fixture.Customize <AfiCustomer>(c => c.With(p => p.SurName, "Murphy") .With(p => p.FirstName, "Richard") .With(p => p.Dob, DateTime.Now) .With(p => p.AfiCustomerID, 1) .With(p => p.PolicyReferenceNumber, "AD-234543") .With(p => p.Email, "*****@*****.**")); AfiCustomer customer = _fixture.Create <AfiCustomer>(); customer.Email = null; customer.Dob = dob; var result = await _validationService.ValidateCustomerEntity(customer); Assert.False(result); }
public async Task <int> CreateAfiCustomer(AfiCustomer customer) { var result = await Task.Run(() => { try { _context.AfiCustomer.Add(customer); _context.SaveChanges(); } catch (Exception) { //if error return -2 return(-2); } var Id = customer.AfiCustomerID; return(Id); }); return(result); }
public async Task <int> RegisterAfiCustomer(AfiCustomer customer) { return(await _customerRepository.CreateAfiCustomer(customer)); }
public async Task <bool> ValidateCustomerEntity(AfiCustomer afiCustomer) { //Policy holder’s first name and surname are both required and should be between 3 and 50 chars. var result = await Task.Run(() => { if (string.IsNullOrEmpty(afiCustomer.SurName?.Trim())) { return(false); } if (string.IsNullOrEmpty(afiCustomer.FirstName?.Trim())) { return(false); } if (afiCustomer.FirstName?.Trim().Length < 3 && afiCustomer.FirstName?.Trim().Length > 50) { return(false); } if (afiCustomer.SurName?.Trim().Length < 3 && afiCustomer.SurName?.Trim().Length > 50) { return(false); } //Policy Reference number is required and should match the following format XX-999999. //Where XX are any capitalised alpha character followed by a hyphen and 6 numbers. if (string.IsNullOrEmpty(afiCustomer.PolicyReferenceNumber?.Trim())) { return(false); } if (afiCustomer.PolicyReferenceNumber?.Trim().Length < 9) { return(false); } if (afiCustomer.Dob == null && string.IsNullOrEmpty(afiCustomer.Email?.Trim())) { return(false); } if (!(afiCustomer.Dob == null) && !string.IsNullOrEmpty(afiCustomer.Email?.Trim())) { return(false); } Regex policyExpression = new Regex(@"^[A-Z]{2}-[0-9]{6}"); if (!policyExpression.IsMatch(afiCustomer.PolicyReferenceNumber?.Trim())) { return(false); } //If supplied the policy holders email address should contain a string of at least //4 alpha numeric chars followed by an ‘@’ sign and then another string of at least //2 alpha numeric chars.The email address should end in either ‘.com’ or ‘.co.uk’. Regex emailExpression = new Regex(@"^[A-Za-z][A-Za-z0-9]{3,}@[A-Za-z0-9]{2,}.(com|co.uk)$"); if (!string.IsNullOrEmpty(afiCustomer.Email?.Trim())) { if (!emailExpression.IsMatch(afiCustomer.Email.Trim())) { return(false); } } if (afiCustomer.Dob.HasValue) { int age = DateTime.Now.Year - afiCustomer.Dob.Value.Year; if (afiCustomer.Dob.Value > DateTime.Now.AddYears(-age)) { age--; } if (age < 18) { return(false); } } return(true); }); return(result); }