Exemplo n.º 1
0
        public async Task FindOrder_ValidRequest_ReturnsOrder()
        {
            var orderRecord = _orderRecords[0];
            var id          = orderRecord.Id;

            var findRequest = new FindOrderRequest {
                Id = id
            };
            var findResponse = await Fixture.Orders.FindOrderAsync(findRequest);

            Assert.Equal(orderRecord.Id, findResponse.Id);
            Assert.Equal(orderRecord.CustomerId, findResponse.CustomerId);
            Assert.Equal((OrderStatus)orderRecord.OrderStatusId, findResponse.Status);

            Assert.NotNull(findResponse.OrderItems);

            Assert.Equal(orderRecord.OrderItems.Count, findResponse.OrderItems.Count);

            for (int i = 0; i < orderRecord.OrderItems.Count; i++)
            {
                var orderDetailRecord  = orderRecord.OrderItems.ToList()[i];
                var findResponseDetail = findResponse.OrderItems[i];

                Assert.Equal(orderDetailRecord.Id, findResponseDetail.Id);
                Assert.Equal(orderDetailRecord.ProductId, findResponseDetail.ProductId);
                Assert.Equal(orderDetailRecord.Quantity, findResponseDetail.Quantity);
                Assert.Equal(orderDetailRecord.StatusId, findResponseDetail.Status);
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <FindOrderResponse> > FindOrderAsync(Guid id)
        {
            var request = new FindOrderRequest {
                Id = id
            };
            var response = await Service.FindOrderAsync(request);

            return(Ok(response));
        }
Exemplo n.º 3
0
        public async Task FindOrder_NotExistRequest_ThrowsNotFoundRequestException()
        {
            var id = Guid.NewGuid();

            var findRequest = new FindOrderRequest {
                Id = id
            };

            await Assert.ThrowsAsync <NotFoundRequestException>(() => Fixture.Orders.FindOrderAsync(findRequest));
        }
Exemplo n.º 4
0
        public async Task FindOrder_NotExistRequest_ThrowsNotFoundRequestException()
        {
            var id = Guid.NewGuid();

            var findRequest = new FindOrderRequest {
                Id = id
            };

            var findApiResponse = await Fixture.Api.Orders.FindOrderAsync(findRequest);

            Assert.Equal(HttpStatusCode.NotFound, findApiResponse.StatusCode);
        }
        private void NewInvoiceFromOrders()
        {
            ItemSelectionNotification notification = new ItemSelectionNotification(ApplicationStrings.FindOrderForInvoicingPayload);

            notification.Title = ApplicationStrings.NotificationFindOrder;
            FindOrderRequest.Raise(notification,
                                   r => {
                if (r != null && r.Confirmed && r.SelectedItem != null)
                {
                    List <Order> orders = r.SelectedItem as List <Order>;
                    if (orders != null)
                    {
                        GenerateInvoiceFromOrderItems(orders);
                    }
                }
            });
        }
Exemplo n.º 6
0
        public async Task UpdateOrder_ValidRequest_ReturnsResponse()
        {
            var product1Record = _productRecords[2];
            var product2Record = _productRecords[3];

            var orderRecord = _orderRecords[1];

            var orderStatusId = orderRecord.OrderStatusId;

            var updateRequest = new UpdateOrderRequest
            {
                Id         = orderRecord.Id,
                OrderItems = new List <UpdateOrderItemRequest>
                {
                    new UpdateOrderItemRequest
                    {
                        Id        = orderRecord.OrderItems.ElementAt(0).Id,
                        ProductId = product1Record.Id,
                        Quantity  = 72,
                    },

                    new UpdateOrderItemRequest
                    {
                        Id        = null,
                        ProductId = product2Record.Id,
                        Quantity  = 84,
                    }
                },
            };

            var updateResponse = await Fixture.Orders.UpdateOrderAsync(updateRequest);

            Assert.Equal(updateRequest.Id, updateResponse.Id);
            Assert.Equal(orderRecord.CustomerId, updateResponse.CustomerId);
            Assert.Equal((OrderStatus)orderStatusId, updateResponse.Status);

            Assert.NotNull(updateResponse.OrderItems);

            Assert.Equal(updateRequest.OrderItems.Count, updateResponse.OrderItems.Count);

            for (int i = 0; i < updateRequest.OrderItems.Count; i++)
            {
                var updateRequestOrderDetail  = updateRequest.OrderItems[i];
                var updateResponseOrderDetail = updateResponse.OrderItems[i];

                if (updateRequestOrderDetail.Id != null)
                {
                    Assert.Equal(updateRequestOrderDetail.Id, updateResponseOrderDetail.Id);
                }
                else
                {
                    AssertUtilities.NotEmpty(updateResponseOrderDetail.Id);
                }

                Assert.Equal(updateRequestOrderDetail.ProductId, updateResponseOrderDetail.ProductId);
                Assert.Equal(updateRequestOrderDetail.Quantity, updateResponseOrderDetail.Quantity);
                Assert.Equal(OrderItemStatus.Allocated, updateResponseOrderDetail.Status);
            }

            var findRequest = new FindOrderRequest {
                Id = updateResponse.Id
            };

            var findResponse = await Fixture.Orders.FindOrderAsync(findRequest);

            Assert.Equal(updateResponse.Id, findResponse.Id);
            Assert.Equal(updateResponse.CustomerId, updateResponse.CustomerId);
            Assert.Equal(updateResponse.Status, updateResponse.Status);

            Assert.NotNull(findResponse.OrderItems);

            Assert.Equal(updateResponse.OrderItems.Count, findResponse.OrderItems.Count);

            // TODO: VC: Do this later when use sequential guids

            /*
             * for (int i = 0; i < updateResponse.OrderItems.Count; i++)
             * {
             *  var updateResponseOrderDetail = updateResponse.OrderItems[i];
             *  var findResponseOrderDetail = findResponse.OrderItems[i];
             *
             *  Assert.Equal(updateResponseOrderDetail.Id, findResponseOrderDetail.Id);
             *  Assert.Equal(updateResponseOrderDetail.ProductId, findResponseOrderDetail.ProductId);
             *  Assert.Equal(updateResponseOrderDetail.Quantity, findResponseOrderDetail.Quantity);
             *  Assert.Equal(updateResponseOrderDetail.StatusId, findResponseOrderDetail.StatusId);
             * }
             */
        }
Exemplo n.º 7
0
        public async Task CreateOrder_ValidRequest_ReturnsResponse()
        {
            var customerRecord = _customerRecords[0];

            var product1Record = _productRecords[0];
            var product2Record = _productRecords[1];

            var createRequest = new CreateOrderRequest
            {
                CustomerId = customerRecord.Id,
                OrderItems = new List <CreateOrderItemRequest>
                {
                    new CreateOrderItemRequest
                    {
                        ProductId = product1Record.Id,
                        Quantity  = 10,
                    },

                    new CreateOrderItemRequest
                    {
                        ProductId = product2Record.Id,
                        Quantity  = 20,
                    }
                },
            };

            var createResponse = await Fixture.Orders.CreateOrderAsync(createRequest);

            AssertUtilities.NotEmpty(createResponse.Id);
            Assert.Equal(createRequest.CustomerId, createResponse.CustomerId);
            Assert.Equal(OrderStatus.New, createResponse.Status);

            Assert.NotNull(createResponse.OrderItems);

            Assert.Equal(createRequest.OrderItems.Count, createResponse.OrderItems.Count);

            for (int i = 0; i < createRequest.OrderItems.Count; i++)
            {
                var createRequestOrderDetail  = createRequest.OrderItems[i];
                var createResponseOrderDetail = createResponse.OrderItems[i];

                AssertUtilities.NotEmpty(createResponseOrderDetail.Id);
                Assert.Equal(createRequestOrderDetail.ProductId, createResponseOrderDetail.ProductId);
                Assert.Equal(createRequestOrderDetail.Quantity, createResponseOrderDetail.Quantity);
                Assert.Equal(OrderItemStatus.Allocated, createResponseOrderDetail.Status);
            }

            var findRequest = new FindOrderRequest {
                Id = createResponse.Id
            };

            var findResponse = await Fixture.Orders.FindOrderAsync(findRequest);

            Assert.Equal(createResponse.Id, findResponse.Id);
            Assert.Equal(createResponse.CustomerId, createResponse.CustomerId);
            Assert.Equal(createResponse.Status, createResponse.Status);

            Assert.NotNull(findResponse.OrderItems);

            // TODO: VC: Check sequence

            /*
             * Assert.Equal(createResponse.OrderItems.Count, findResponse.OrderItems.Count);
             *
             * for (int i = 0; i < createResponse.OrderItems.Count; i++)
             * {
             *  var createResponseOrderDetail = createResponse.OrderItems[i];
             *  var findResponseOrderDetail = findResponse.OrderItems[i];
             *
             *
             *  Assert.Equal(createResponseOrderDetail.Id, findResponseOrderDetail.Id);
             *  Assert.Equal(createResponseOrderDetail.ProductId, findResponseOrderDetail.ProductId);
             *  Assert.Equal(createResponseOrderDetail.Quantity, findResponseOrderDetail.Quantity);
             *  Assert.Equal(createResponseOrderDetail.StatusId, findResponseOrderDetail.StatusId);
             * }
             */
        }
Exemplo n.º 8
0
 public Task <FindOrderResponse> FindOrderAsync(FindOrderRequest request)
 {
     return(HandleAsync <FindOrderRequest, FindOrderResponse> (request));
 }
Exemplo n.º 9
0
        public Task <IObjectClientResponse <FindOrderResponse> > FindOrderAsync(FindOrderRequest request)
        {
            var id = request.Id;

            return(Client.GetByIdAsync <Guid, FindOrderResponse>(id));
        }