public SalesOrderViewModelService( ILoggerFactory loggerFactory, IMapper mapper, ReferenceDataApiClient referenceDataApiClient, SalesOrderApiClient salesOrderApiClient ) { logger = loggerFactory.CreateLogger <SalesOrderViewModelService>(); this.mapper = mapper; this.referenceDataApiClient = referenceDataApiClient; this.salesOrderApiClient = salesOrderApiClient; }
public async Task GetSalesOrders_SalesOrdersFound_ReturnsSalesOrders( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, List <SalesOrder> salesOrders, SalesOrderApiClient sut, int pageIndex, int pageSize, string territory, CustomerType customerType ) { //Arrange httpClient.BaseAddress = uri; var salesOrdersResult = new SalesOrdersResult { SalesOrders = salesOrders, TotalSalesOrders = salesOrders.Count }; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.OK, new StringContent( JsonSerializer.Serialize( salesOrdersResult, new JsonSerializerOptions { Converters = { new JsonStringEnumConverter() }, IgnoreReadOnlyProperties = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }), Encoding.UTF8, "application/json" ) ); //Act var response = await sut.GetSalesOrdersAsync(pageIndex, pageSize, territory, customerType); //Assert response.Should().BeEquivalentTo(salesOrdersResult); }
public void GetSalesOrders_NoSalesOrdersFound_ThrowsHttpRequestException( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, SalesOrderApiClient sut ) { //Arrange httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.NotFound); //Act Func <Task> func = async() => await sut.GetSalesOrdersAsync(0, 10, null, null); //Assert func.Should().Throw <HttpRequestException>() .WithMessage("Response status code does not indicate success: 404 (Not Found)."); }
public async Task GetSalesOrder_SalesOrderFound_ReturnsSalesOrder( [Frozen] MockHttpMessageHandler handler, [Frozen] HttpClient httpClient, Uri uri, SalesOrder salesOrder, SalesOrderApiClient sut ) { //Arrange httpClient.BaseAddress = uri; handler.When(HttpMethod.Get, $"{uri}*") .Respond(HttpStatusCode.OK, new StringContent( JsonSerializer.Serialize( salesOrder, new JsonSerializerOptions { Converters = { new JsonStringEnumConverter() }, IgnoreReadOnlyProperties = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }), Encoding.UTF8, "application/json" ) ); //Act var response = await sut.GetSalesOrderAsync(salesOrder.SalesOrderNumber); //Assert response.Should().BeEquivalentTo(salesOrder); }