public async Task <SalesOrderDetailViewModel> GetSalesOrder(string salesOrderNumber) { logger.LogInformation("GetSalesOrder called"); var response = await salesOrderApiClient.GetSalesOrderAsync(salesOrderNumber); var vm = new SalesOrderDetailViewModel { SalesOrder = mapper.Map <SalesOrderViewModel>(response) }; return(vm); }
public void GetSalesOrder_NoSalesOrderFound_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.GetSalesOrderAsync("123"); //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); }