public void GetPreferredAddress_CustomerNotFound_ThrowsHttpRequestException( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, string accountNumber, string addressType, CustomerApiClient sut ) { //Arrange httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.NotFound); //Act Func <Task> func = async() => await sut.GetPreferredAddressAsync(accountNumber, addressType); //Assert func.Should().Throw <CustomerApiClientException>() .WithInnerException <HttpRequestException>() .WithMessage("Response status code does not indicate success: 404 (Not Found)."); }
public async Task GetPreferredAddress_AddressFound_ReturnAddress( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, string accountNumber, string addressType, models.GetPreferredAddress.Address address, CustomerApiClient sut ) { //Arrange httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.OK, new StringContent( JsonSerializer.Serialize(address, new JsonSerializerOptions { Converters = { new JsonStringEnumConverter() }, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }), Encoding.UTF8, "application/json" ) ); //Act var response = await sut.GetPreferredAddressAsync(accountNumber, addressType); //Assert response.Should().BeEquivalentTo(address); }