コード例 #1
0
        public void ShipApprovedOrder()
        {
            Order initialOrder = Order.InitialOrder(OrderStatus.Approved);

            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest {
                OrderId = 1
            };

            useCase.Run(request);

            Assert.Equal(OrderStatus.Shipped, orderRepository.SavedOrder.Status);
            Assert.Equal(shipmentService.ShippedOrder, 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);

            Assert.That(() => useCase.run(request),
                        Throws.TypeOf <OrderCannotBeShippedTwiceException>());
        }
コード例 #3
0
        public void RejectedOrdersCannotBeShipped()
        {
            Order initialOrder = Order.InitialOrder(OrderStatus.Rejected);

            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest {
                OrderId = 1
            };

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

            Assert.Throws <OrderCannotBeShippedException>(runAction);
            Assert.Null(orderRepository.SavedOrder);
            Assert.Null(shipmentService.ShippedOrder);
        }
コード例 #4
0
        public void ShippedOrdersCannotBeShippedAgain()
        {
            var initialOrder = new Order {
                Id = 1, Status = OrderStatus.Shipped
            };

            orderRepository.AddOrder(initialOrder);

            var request = new OrderShipmentRequest {
                OrderId = 1
            };

            Assert.Throws <OrderCannotBeShippedTwiceException>(() => useCase.Run(request));
            Assert.Null(orderRepository.SavedOrder);
            Assert.Null(shipmentService.ShippedOrder);
        }
コード例 #5
0
ファイル: OrderShipmentTest.cs プロジェクト: rsevil/TDA.Kata
        public void ShipApprovedOrder()
        {
            var initialOrder = new Order();

            initialOrder.Id     = 1;
            initialOrder.Status = OrderStatus.APPROVED;
            _orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.OrderId = 1;

            _orderShipment.Handle(request);

            _orderRepository.getLastSavedOrder().Status.Should().Be(OrderStatus.SHIPPED);
            _inMemShipmentService.getLastShippedOrder().Should().Be(initialOrder);
        }
コード例 #6
0
        public void ShipApprovedOrder()
        {
            var initialOrder = new Order {
                Id = 1, Status = OrderStatus.Approved
            };

            orderRepository.AddOrder(initialOrder);

            var request = new OrderShipmentRequest {
                OrderId = 1
            };

            useCase.Run(request);

            Assert.AreEqual(OrderStatus.Shipped, orderRepository.SavedOrder.Status);
            Assert.AreEqual(shipmentService.ShippedOrder, initialOrder);
        }
コード例 #7
0
        public void ShippedOrdersCannotBeShippedAgain()
        {
            Order initialOrder = Order.InitialOrder(OrderStatus.Shipped);

            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest
            {
                OrderId = 1
            };

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

            Assert.Throws <OrderCannotBeShippedTwiceException>(actionRun);
            Assert.Null(orderRepository.SavedOrder);
            Assert.Null(shipmentService.ShippedOrder);
        }
コード例 #8
0
        public void shipApprovedOrder()
        {
            Order initialOrder = new Order();

            initialOrder.Id     = 1;
            initialOrder.Status = OrderStatus.Approved;
            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.OrderId = 1;

            useCase.Run(request);

            orderRepository.GetSavedOrder().Status.Should().Be(OrderStatus.Shipped);
            shipmentService.GetShippedOrder().Should().BeSameAs(initialOrder);
        }
コード例 #9
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);

            Assert.That(orderRepository.getSavedOrder().getStatus(), Is.EqualTo(OrderStatus.SHIPPED));
            Assert.That(shipmentService.getShippedOrder(), Is.EqualTo(initialOrder));
        }
コード例 #10
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);
        }
コード例 #11
0
ファイル: OrderShipmentTest.cs プロジェクト: rsevil/TDA.Kata
        public void ShippedOrdersCannotBeShippedAgain()
        {
            var initialOrder = new Order();

            initialOrder.Id     = 1;
            initialOrder.Status = OrderStatus.SHIPPED;
            _orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.OrderId = 1;

            Action act = () => _orderShipment.Handle(request);

            act.Should().Throw <OrderCannotBeShippedTwiceException>();
            _orderRepository.getLastSavedOrder().Should().BeNull();
            _inMemShipmentService.getLastShippedOrder().Should().BeNull();
        }
        public void ShipApprovedOrder()
        {
            var initialOrder = OrderBuilder.AnOrder()
                               .WithId(1)
                               .WithStatus(OrderStatus.Approved)
                               .Build();

            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest {
                OrderId = 1
            };

            useCase.Run(request);

            Assert.Equal(OrderStatus.Shipped, orderRepository.SavedOrder.Status);
            Assert.Equal(shipmentService.ShippedOrder, initialOrder);
        }
コード例 #13
0
        public void createdOrdersCannotBeShipped()
        {
            Order initialOrder = new Order();

            initialOrder.setId(1);
            initialOrder.setStatus(OrderStatus.CREATED);
            orderRepository.addOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.setOrderId(1);

            Assert.That(() => useCase.run(request),
                        Throws.TypeOf <OrderCannotBeShippedException>());


            Assert.That(orderRepository.getSavedOrder(), Is.Null);
            Assert.That(shipmentService.getShippedOrder(), Is.Null);
        }
コード例 #14
0
        public void RejectedOrdersCannotBeShipped()
        {
            Order initialOrder = new Order();

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

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.SetOrderId(1);

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

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

            orderRepository.GetSavedOrder().Should().BeNull();
            shipmentService.GetShippedOrder().Should().BeNull();
        }
        public void CreatedOrdersCannotBeShipped()
        {
            var initialOrder = OrderBuilder.AnOrder()
                               .WithId(1)
                               .WithStatus(OrderStatus.Created)
                               .Build();

            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest {
                OrderId = 1
            };

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

            Assert.Throws <OrderCannotBeShippedException>(runAction);
            Assert.Null(orderRepository.SavedOrder);
            Assert.Null(shipmentService.ShippedOrder);
        }
コード例 #16
0
        public void shippedOrdersCannotBeShippedAgain()
        {
            Order initialOrder = new Order();

            initialOrder.Id     = 1;
            initialOrder.Status = OrderStatus.Shipped;
            orderRepository.AddOrder(initialOrder);

            OrderShipmentRequest request = new OrderShipmentRequest();

            request.OrderId = 1;

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

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

            orderRepository.GetSavedOrder().Should().BeNull();
            shipmentService.GetShippedOrder().Should().BeNull();
        }
コード例 #17
0
        public void ShipApprovedOrder()
        {
            var initialOrder = new Order
            {
                Status = OrderStatus.Approved,
                Id     = 1
            };

            _orderRepository.AddOrder(initialOrder);

            var request = new OrderShipmentRequest
            {
                OrderId = 1
            };

            _useCase.Run(request);

            Assert.Equal(OrderStatus.Shipped, _orderRepository.GetSavedOrder().Status);
            Assert.Same(initialOrder, _shipmentService.GetShippedOrder());
        }
コード例 #18
0
        public void ShippedOrdersCannotBeShippedAgain()
        {
            var initialOrder = new Order
            {
                Status = OrderStatus.Shipped,
                Id     = 1
            };

            _orderRepository.AddOrder(initialOrder);

            var request = new OrderShipmentRequest
            {
                OrderId = 1
            };

            Action actionToTest = () => _useCase.Run(request);

            Assert.Throws <OrderCannotBeShippedTwiceException>(actionToTest);
            Assert.Null(_orderRepository.GetSavedOrder());
            Assert.Null(_shipmentService.GetShippedOrder());
        }