public void ShippedOrdersCannotBeRejected()
        {
            Order initialOrder = new Order();

            initialOrder.SetStatus(OrderStatus.Shipped);
            initialOrder.SetId(1);
            orderRepository.AddOrder(initialOrder);

            OrderApprovalRequest request = new OrderApprovalRequest();

            request.SetOrderId(1);
            request.SetApproved(false);

            Action act = () => useCase.Run(request);

            act.Should().Throw <ShippedOrdersCannotBeChangedException>();
            orderRepository.GetSavedOrder().Should().BeNull();
        }
        public void RejectedExistingOrder()
        {
            Order initialOrder = new Order();

            initialOrder.SetStatus(OrderStatus.Created);
            initialOrder.SetId(1);
            orderRepository.AddOrder(initialOrder);

            OrderApprovalRequest request = new OrderApprovalRequest();

            request.SetOrderId(1);
            request.SetApproved(false);

            useCase.Run(request);

            Order savedOrder = orderRepository.GetSavedOrder();

            savedOrder.GetStatus().Should().Be(OrderStatus.Rejected);
        }