public void ShouldMapPrimaryAddressableObjectNameToAddressLine1(string paon, bool expectNullAddressLine1ToBe) { // Arrange. var fromAddress = new BSaddressStructure { PAON = new AONstructure { Items = new object[] { paon } } }; // Act. var toAddress = _mapper.ToAddress(fromAddress); // Assert. toAddress.Should().NotBeNull(); if (expectNullAddressLine1ToBe) { toAddress.AddressLine1.Should().BeNull(); } else { toAddress.AddressLine1.Should().Be(paon.Trim()); } }
/// <summary> /// This is a public method so as to be testable. /// The SOAP service result is not injectable, making this code impossible to reach if it were invoked /// as part of the interface methods. /// *This is a nasty piece of code to test, but there are some units around it. /// </summary> /// <param name="address"></param> /// <returns></returns> private PostalAddress GetValidatedAddress(BSaddressStructure address) { //OO 20/01/16: Employer Address validation //Here, we are replicating what AVMS does for address verification //get address by postcode and line 1 //if address not found, get address by postcode alone //if address not found, just use the retrieved address var postCodeToSearch = address.PostCode; var addressLine1 = address.PAON?.Items.FirstOrDefault()?.ToString(); PostalAddress verifiedAddress = null; if (!string.IsNullOrWhiteSpace(addressLine1)) { var addresses = _postalAddressSearchService.GetValidatedAddress(postCodeToSearch, addressLine1)?.ToList(); if (addresses != null && addresses.Count() == 1) { verifiedAddress = addresses.Single(); } } if (verifiedAddress == null) { var validatedAddresses = _postalAddressSearchService.GetValidatedAddresses(postCodeToSearch); if (!string.IsNullOrEmpty(addressLine1)) { verifiedAddress = validatedAddresses?.FirstOrDefault(a => a.AddressLine1.IndexOf(addressLine1, StringComparison.CurrentCultureIgnoreCase) != -1); } if (verifiedAddress == null) { verifiedAddress = validatedAddresses?.FirstOrDefault(); } } return(verifiedAddress); }
private static string GetItem(BSaddressStructure contactAddress, ItemsChoiceType choice) { if (contactAddress.ItemsElementName != null && contactAddress.ItemsElementName.Any(x => x == choice)) { return(contactAddress?.Items[System.Array.IndexOf(contactAddress?.ItemsElementName, choice)]); } return(null); }
private Address MapFromContactAddress(BSaddressStructure contactAddress) { return(new Address { PostCode = contactAddress?.PostCode, PAON = contactAddress?.PAON?.Description, SAON = contactAddress?.SAON?.Description, StreetDescription = contactAddress?.StreetDescription, PostTown = contactAddress?.PostTown, Town = GetItem(contactAddress, ItemsChoiceType.Town), AdministrativeArea = GetItem(contactAddress, ItemsChoiceType.AdministrativeArea), Locality = contactAddress?.Locality, UniquePropertyReferenceNumber = contactAddress?.UniquePropertyReferenceNumber, UniqueStreetReferenceNumber = contactAddress?.UniqueStreetReferenceNumber }); }
public void ShouldMapStreetDescriptionToAddressLine2(string streetDescription, bool expectNullAddressLine2) { // Arrange. var fromAddress = new BSaddressStructure { StreetDescription = streetDescription }; // Act. var toAddress = _mapper.ToAddress(fromAddress); // Assert. toAddress.Should().NotBeNull(); if (expectNullAddressLine2) { toAddress.AddressLine2.Should().BeNull(); } else { toAddress.AddressLine2.Should().Be(streetDescription.Trim()); } }
public void ShouldMapPostcode(string postcode, bool expectNullPostcode) { // Arrange. var fromAddress = new BSaddressStructure { PostCode = postcode }; // Act. var toAddress = _mapper.ToAddress(fromAddress); // Assert. toAddress.Should().NotBeNull(); if (expectNullPostcode) { toAddress.Postcode.Should().BeNull(); } else { toAddress.Postcode.Should().Be(postcode.Trim()); } }
public void ShouldMapPostTownToAddressLine3(string postTown, bool expectNullAddressLine3) { // Arrange. var fromAddress = new BSaddressStructure { PostTown = postTown }; // Act. var toAddress = _mapper.ToAddress(fromAddress); // Assert. toAddress.Should().NotBeNull(); if (expectNullAddressLine3) { toAddress.AddressLine3.Should().BeNull(); } else { toAddress.AddressLine3.Should().Be(postTown.Trim()); } }
public PostalAddress ToAddress(BSaddressStructure fromAddress) { if (fromAddress == null) { throw new ArgumentNullException(nameof(fromAddress)); } // Reference: http://xml.coverpages.org/BS7666SchemaDefinition-20020312-xsd.txt. // PAON: Primary Addressable Object Name // SAON: Secondary Addressable Object Name var paon = fromAddress.PAON?.Items.FirstOrDefault()?.ToString(); return(new PostalAddress { AddressLine1 = MapAddressComponent(paon), AddressLine2 = MapAddressComponent(fromAddress.StreetDescription), AddressLine3 = MapAddressComponent(fromAddress.PostTown), AddressLine4 = null, Postcode = MapAddressComponent(fromAddress.PostCode), ValidationSourceCode = null, ValidationSourceKeyValue = null, GeoPoint = null }); }