Пример #1
0
        public async Task Lookup_Terminated_Postcode_Returns_Expected_Result()
        {
            //https://api.postcodes.io/terminated_postcodes/AB1%200AX

            var terminatedPostcodeResponseData = new TerminatedPostcodeLookupResultData
            {
                Postcode        = "AB1 0AX",
                Latitude        = "57.095679",
                Longitude       = "-2.24788",
                TerminatedYear  = "1996",
                TerminatedMonth = "6"
            };

            var httpClient = new PostcodesTestHttpClientFactory()
                             .Get("AB1 0AX", false, null,
                                  true, terminatedPostcodeResponseData);

            var service = new LocationService(httpClient);

            var result = await service.LookupPostcodeAsync("AB1 0AX");

            result.Should().NotBeNull();

            result.Postcode.Should().Be("AB1 0AX");
            result.Latitude.Should().Be(57.095679M);
            result.Longitude.Should().Be(-2.24788M);
            result.DistrictCode.Should().BeNull();
            result.IsTerminated.Should().BeTrue();
            result.TerminatedYear.Should().Be(1996);
            result.TerminatedMonth.Should().Be(6);
        }
Пример #2
0
        public HttpClient Get(string requestPostcode,
                              bool isValidPostcode,
                              PostcodeLookupResultData postcodeResponseData,
                              bool isTerminatedPostcode,
                              TerminatedPostcodeLookupResultData terminatedPostcodeResponseData)
        {
            var requests = new List <RequestWrapper>();

            if (isValidPostcode && postcodeResponseData != null)
            {
                requests.Add(new RequestWrapper
                {
                    Uri            = $"https://api.postcodes.io/postcodes/{Uri.EscapeDataString(requestPostcode)}",
                    ResponseObject =
                        //(isValidPostcode && postcodeResponseData != null) ?
                        (object)new PostcodeLookupResponse
                    {
                        Result = postcodeResponseData,
                        Status = "OK"
                    }
                    //:
                    //new ErrorResponse
                    //{
                    //    Error = "Invalid postcode",
                    //    Status = "NotFound"
                    //}
                });
            }

            if (isTerminatedPostcode && terminatedPostcodeResponseData != null)
            {
                requests.Add(new RequestWrapper
                {
                    Uri            = $"https://api.postcodes.io/terminated_postcodes/{Uri.EscapeDataString(requestPostcode)}",
                    ResponseObject =
                        //(isTerminatedPostcode && terminatedPostcodeResponseData != null) ?
                        (object)new TerminatedPostcodeLookupResponse
                    {
                        Result = terminatedPostcodeResponseData,
                        Status = "OK"
                    }
                    //:
                    //new ErrorResponse
                    //{
                    //    Error = "Terminated postcode not found",
                    //    Status = "NotFound"
                    //}
                });
            }

            return(CreateClient(requests));
        }