コード例 #1
0
            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);
            }
コード例 #2
0
            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).");
            }