public async Task GetProducts_ProductsFound_ReturnsProducts( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, List <Product> list, ProductApiClient sut, string category, string subCategory, string orderBy ) { //Arrange var products = new GetProductsResult { Products = list, TotalProducts = list.Count }; httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.OK, new StringContent( JsonSerializer.Serialize(products, new JsonSerializerOptions { Converters = { new JsonStringEnumConverter() }, IgnoreReadOnlyProperties = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }) ) ); //Act var response = await sut.GetProductsAsync(0, 10, category, subCategory, orderBy); //Assert response.Should().NotBeNull(); response.TotalProducts.Should().Be(list.Count); response.Products.Should().BeEquivalentTo(list); }
public void GetProducts_NoProductsFound_ThrowsHttpRequestException( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, ProductApiClient sut ) { //Arrange httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.NotFound); //Act Func <Task> func = async() => await sut.GetProductsAsync(0, 10, null, null, null); //Assert func.Should().Throw <HttpRequestException>() .WithMessage("Response status code does not indicate success: 404 (Not Found)."); }