public async Task ViewOrder_ValidRequest_ReturnsOrder() { // Arrange var header = await GetDefaultHeaderDataAsync(); var createHttpResponses = await CreateSampleOrdersAsync(); var createResponse = createHttpResponses[0].Data; var id = createResponse.Id; // Act var findRequest = new ViewOrderQuery { Id = id }; var findHttpResponse = await Fixture.Api.Orders.ViewOrderAsync(findRequest, header); // Assert findHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK); var findResponse = findHttpResponse.Data; findResponse.Should().BeEquivalentTo(createResponse); }
public async Task <ActionResult <ViewOrderQueryResponse> > ViewOrderAsync(Guid id) { var request = new ViewOrderQuery { Id = id }; var response = await _messageBus.SendAsync(request); return(Ok(response)); }
public async Task CancelOrder_Valid() { // Arrange var header = await GetDefaultHeaderDataAsync(); var createResponses = await CreateSampleOrdersAsync(); var someCreateResponse = createResponses[1]; // Act var id = someCreateResponse.Data.Id; var cancelRequest = new CancelOrderCommand { Id = id }; var cancelHttpResponse = await Fixture.Api.Orders.CancelOrderAsync(cancelRequest, header); // Assert cancelHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK); var archiveResponse = cancelHttpResponse.Data; var expectedArchiveResponse = new CancelOrderCommandResponse { Id = id, Status = OrderStatus.Cancelled, }; archiveResponse.Should().BeEquivalentTo(expectedArchiveResponse); var findRequest = new ViewOrderQuery { Id = id }; var findHttpResponse = await Fixture.Api.Orders.ViewOrderAsync(findRequest, header); findHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK); var findResponse = findHttpResponse.Data; findResponse.Should().BeEquivalentTo(archiveResponse); }
public async Task ViewOrder_NotExistRequest_ThrowsNotFoundRequestException() { // Arrange var header = await GetDefaultHeaderDataAsync(); var id = Guid.NewGuid(); var findRequest = new ViewOrderQuery { Id = id }; // Act var findApiResponse = await Fixture.Api.Orders.ViewOrderAsync(findRequest, header); // Assert findApiResponse.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public Task <ObjectClientResponse <ViewOrderQueryResponse> > ViewOrderAsync(ViewOrderQuery request, HeaderData header) { var id = request.Id; return(Client.GetByIdAsync <Guid, ViewOrderQueryResponse>(id, GetHeaders(header))); }
public async Task CreateOrder_ValidRequest_ReturnsResponse() { // Arrange var header = await GetDefaultHeaderDataAsync(); var createCustomerResponses = await CreateSampleCustomersAsync(); var createProductResponses = await CreateSampleProductsAsync(); var customerId_0 = createCustomerResponses[0].Data.Id; var productId_0 = createProductResponses[0].Data.Id; var productId_1 = createProductResponses[1].Data.Id; var createRequest = new CreateOrderCommand { CustomerId = customerId_0, OrderItems = new List <CreateOrderItemCommand> { new CreateOrderItemCommand { ProductId = productId_0, Quantity = 10, }, new CreateOrderItemCommand { ProductId = productId_1, Quantity = 20, } }, }; // Act var createHttpResponse = await Fixture.Api.Orders.CreateOrderAsync(createRequest, header); // Assert createHttpResponse.StatusCode.Should().Be(HttpStatusCode.Created); var createResponse = createHttpResponse.Data; createResponse.Id.Should().NotBeEmpty(); createResponse.CustomerId.Should().Be(createRequest.CustomerId); createResponse.Status.Should().Be(OrderStatus.Draft); createResponse.OrderItems.Should().NotBeNull(); createResponse.OrderItems.Count.Should().Be(createRequest.OrderItems.Count); for (int i = 0; i < createRequest.OrderItems.Count; i++) { var createRequestOrderDetail = createRequest.OrderItems[i]; var createResponseOrderDetail = createResponse.OrderItems[i]; createResponseOrderDetail.Id.Should().NotBeEmpty(); createResponseOrderDetail.ProductId.Should().Be(createRequestOrderDetail.ProductId); createResponseOrderDetail.Quantity.Should().Be(createRequestOrderDetail.Quantity); createResponseOrderDetail.Status.Should().Be(OrderItemStatus.Pending); } var findRequest = new ViewOrderQuery { Id = createResponse.Id }; var findHttpResponse = await Fixture.Api.Orders.ViewOrderAsync(findRequest, header); findHttpResponse.StatusCode.Should().Be(HttpStatusCode.OK); var findResponse = findHttpResponse.Data; findResponse.Should().BeEquivalentTo(createResponse); }