コード例 #1
0
        public void ShipApprovedOrder()
        {
            Order initialOrder = new Order();

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

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.SetOrderId(1);

            useCase.Run(request);

            orderRepository.GetSavedOrder().GetStatus().Should().Be(OrderStatus.Shipped);
            shipmentService.GetShippedOrder().Should().Be(initialOrder);
        }
コード例 #2
0
        public void ShippedOrdersCannotBeShippedAgain()
        {
            Order initialOrder = new Order();

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

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.SetOrderId(1);

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

            act.Should().Throw <OrderCannotBeShippedTwiceException>();

            orderRepository.GetSavedOrder().Should().BeNull();
            shipmentService.GetShippedOrder().Should().BeNull();
        }