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); }
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)); }