public async Task Then_Postcodes_Are_Added_To_The_Providers_That_Are_Registered_And_Lat_Lon_Updated(
            List <Domain.Entities.Provider> providerEntities,
            string expectedPostcode,
            PostcodeLookup postcodeLookup,
            List <ContactDetail> contactDetails,
            [Frozen] Mock <IRoatpApiService> roatpApiService,
            [Frozen] Mock <IProviderRepository> providerRepository,
            [Frozen] Mock <IProviderRegistrationRepository> providerRegistrationRepository,
            [Frozen] Mock <IProviderRegistrationImportRepository> providerRegistrationImportRepository,
            [Frozen] Mock <IPostcodeApiService> postcodeApiService,
            ProviderRegistrationAddressImportService service)
        {
            //Arrange
            contactDetails = contactDetails.Select(c =>
            {
                c.ContactType             = "P";
                c.ContactAddress.PostCode = expectedPostcode;
                return(c);
            }).ToList();
            postcodeLookup.Result = postcodeLookup.Result.Select(c =>
            {
                c.Query           = expectedPostcode;
                c.Result.Postcode = expectedPostcode;
                return(c);
            }).ToList();
            var providerRegistrationLookup = new ProviderRegistrationLookup
            {
                Results = new List <ProviderResult>()
            };

            foreach (var provider in providerEntities)
            {
                providerRegistrationLookup.Results.Add(new ProviderResult
                {
                    Ukprn          = provider.Ukprn,
                    ContactDetails = contactDetails
                });
            }
            providerRepository.Setup(x => x.GetAllRegistered()).ReturnsAsync(providerEntities);
            roatpApiService
            .Setup(x => x.GetProviderRegistrationLookupData(It.IsAny <List <int> >()))
            .ReturnsAsync(providerRegistrationLookup);
            postcodeApiService.Setup(x => x.GetPostcodeData(It.Is <PostcodeLookupRequest>(c => c.Postcodes.TrueForAll(y => y.Equals(expectedPostcode)))))
            .ReturnsAsync(postcodeLookup);

            //Act
            await service.ImportAddressData();

            //Assert
            foreach (var provider in providerRegistrationLookup.Results)
            {
                providerRegistrationImportRepository.Verify(x => x.UpdateAddress(provider.Ukprn, It.Is <ContactAddress>(c => c.PostCode == expectedPostcode), It.IsAny <double>(), It.IsAny <double>()), Times.Once());
            }
            providerRegistrationRepository.Verify(x => x.UpdateAddressesFromImportTable(), Times.Once);
        }
        public async Task Then_The_Audit_Record_Is_Updated(
            List <Domain.Entities.Provider> providerEntities,
            string expectedPostcode,
            PostcodeLookup postcodeLookup,
            List <ContactDetail> contactDetails,
            [Frozen] Mock <IRoatpApiService> roatpApiService,
            [Frozen] Mock <IProviderRepository> providerRepository,
            [Frozen] Mock <IProviderImportRepository> providerImportRepository,
            [Frozen] Mock <IPostcodeApiService> postcodeApiService,
            [Frozen] Mock <IImportAuditRepository> importAuditRepository,
            ProviderRegistrationAddressImportService service)
        {
            //Arrange
            contactDetails = contactDetails.Select(c =>
            {
                c.ContactType             = "P";
                c.ContactAddress.PostCode = expectedPostcode;
                return(c);
            }).ToList();
            postcodeLookup.Result = postcodeLookup.Result.Select(c =>
            {
                c.Query           = expectedPostcode;
                c.Result.Postcode = expectedPostcode;
                return(c);
            }).ToList();
            var providerRegistrationLookup = new ProviderRegistrationLookup
            {
                Results = new List <ProviderResult>()
            };

            foreach (var provider in providerEntities)
            {
                providerRegistrationLookup.Results.Add(new ProviderResult
                {
                    Ukprn          = provider.Ukprn,
                    ContactDetails = contactDetails
                });
            }
            providerRepository.Setup(x => x.GetAllRegistered()).ReturnsAsync(providerEntities);
            roatpApiService
            .Setup(x => x.GetProviderRegistrationLookupData(It.IsAny <List <int> >()))
            .ReturnsAsync(providerRegistrationLookup);
            postcodeApiService.Setup(x => x.GetPostcodeData(It.Is <PostcodeLookupRequest>(c => c.Postcodes.TrueForAll(y => y.Equals(expectedPostcode)))))
            .ReturnsAsync(postcodeLookup);

            //Act
            await service.ImportAddressData();

            //Assert
            importAuditRepository.Verify(x => x.Insert(
                                             It.Is <ImportAudit>(c =>
                                                                 c.ImportType.Equals(ImportType.ProviderAddressData) &&
                                                                 c.RowsImported.Equals(providerEntities.Count))), Times.Once);
        }
Esempio n. 3
0
        public ActionResult <PostcodeLookup.PostcodeData> Get(string postcode)
        {
            var data = PostcodeLookup.GetByPostcode(postcode);

            if (data != null)
            {
                return(data);
            }

            return(NotFound(postcode));
        }
        /// <summary>
        /// Example arguments: "ME10 3"; First argmument is a string from the sample dataset;
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            PostcodeLookup postcodeLookup = new PostcodeLookup();

            for (int i = 0; i < args.Length; i++)
            {
                switch (i)
                {
                case 0:
                    foreach (string s in postcodeLookup.GetValidDeliveryOptions(args[i]))
                    {
                        Console.WriteLine(s);
                    }

                    break;
                }
            }
        }
        public void GetValidDeliveryOptionsTest_Unavailable_AreEqual()
        {
            string sInput = "SM5 1RT";

            string[] sOutput = new string[] { "All others", "Delivery by Courier" };

            Mock <IPostcodeLookup> _mock = new Mock <IPostcodeLookup>();

            _mock.Setup(m => m.GetValidDeliveryOptions(sInput)).Returns(() => sOutput);

            PostcodeLookup postcodeLookup = new PostcodeLookup(_mock.Object);

            string[] sTest = postcodeLookup.GetValidDeliveryOptions(sInput);

            //Assert.AreEqual(sOutput, sTest);

            CollectionAssert.AreEqual(sOutput, sTest);
        }
        public void GetValidDeliveryOptionsTest_Available_AreEqual()
        {
            string sInput = "ME10 3";

            string[] sOutput = new string[] { "ME10 3", "Collect from Kitchen, Delivery  from Sittingbourne" };

            Mock <IPostcodeLookup> _mock = new Mock <IPostcodeLookup>();

            _mock.Setup(m => m.GetValidDeliveryOptions(sInput)).Returns(() => sOutput);

            PostcodeLookup postcodeLookup = new PostcodeLookup(_mock.Object);

            string[] sTest = postcodeLookup.GetValidDeliveryOptions(sInput);

            //Assert.AreEqual(sOutput, sTest);

            CollectionAssert.AreEqual(sOutput, sTest);
        }
Esempio n. 7
0
        public ActionResult <PostcodeLookup.PostcodeData> Get()
        {
            var data = PostcodeLookup.GetByPostcode("Test");

            return(data);
        }