Exemplo n.º 1
0
        public async Task IdOfNonexistentCustomer_UpdateCustomerOrder_ReturnNotFound()
        {
            const int customerId = -1;
            const int orderId    = 7;
            var       orderModel = new OrderModelBase();

            var exception = await Assert.ThrowsAsync <ProblemDetailsException>(() =>
                                                                               _customerController.UpdateCustomerOrder(customerId, orderId, orderModel));

            Assert.Equal(StatusCodes.Status404NotFound, exception.Details.Status);
            Assert.Contains("customer", exception.Details.Title, StringComparison.OrdinalIgnoreCase);
        }
Exemplo n.º 2
0
        public async Task FailedToSaveUpdatedOrder_UpdateCustomerOrder_ReturnBadRequest()
        {
            const int customerId = 4;
            const int orderId    = 2;
            var       orderModel = new OrderModelBase {
                RequiredDate = DateTimeOffset.Now
            };

            _customerService.Setup(c => c.GetById(customerId)).ReturnsAsync(new Customer());
            _customerService.Setup(c => c.GetEntityById(customerId, orderId))
            .ReturnsAsync(new Order());

            var response = await _customerController.UpdateCustomerOrder(customerId, orderId, orderModel);

            Assert.IsType <ActionResult <OrderResponseModel> >(response);
            Assert.IsType <BadRequestResult>(response.Result);
            _customerService.Verify(c => c.UpdateEntity(customerId, It.IsAny <Order>()));
        }
Exemplo n.º 3
0
        public async Task OrderWithShippedDate_UpdateCustomerOrder_ReturnBadRequest()
        {
            const int customerId = 14;
            const int orderId    = 5;
            var       orderModel = new OrderModelBase {
                RequiredDate = DateTimeOffset.Now
            };

            var mockOrder = new Order {
                ShippedDate = DateTimeOffset.UtcNow
            };

            _customerService.Setup(c => c.GetById(customerId)).ReturnsAsync(new Customer());
            _customerService.Setup(c => c.GetEntityById(customerId, orderId)).ReturnsAsync(mockOrder);

            var response = await _customerController.UpdateCustomerOrder(customerId, orderId, orderModel);

            Assert.IsType <ActionResult <OrderResponseModel> >(response);
            var result = Assert.IsType <BadRequestObjectResult>(response.Result);

            Assert.NotNull(result.Value);
        }
        public async Task <ActionResult <OrderResponseModel> > UpdateCustomerOrder(int customerId, int orderId,
                                                                                   OrderModelBase orderRequest)
        {
            await DoesCustomerExist(customerId);

            var order = await GetOrder(customerId, orderId);

            if (order.ShippedDate != null)
            {
                return(BadRequest("Order's Required data cannot be updated as " +
                                  $"it has already been scheduled to ship on {order.ShippedDate}"));
            }

            order.RequiredDate = orderRequest.RequiredDate;
            _customerService.UpdateEntity(customerId, order);

            if (await _customerService.IsSavedToDb())
            {
                return(Ok(_mapper.Map <OrderResponseModel>(order)));
            }

            return(BadRequest());
        }