Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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
     });
 }
Esempio n. 5
0
        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());
            }
        }
Esempio n. 6
0
        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());
            }
        }
Esempio n. 7
0
        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
            });
        }