public void OrderStatusShipped_ExceptionThrown()
            {
                var shipment      = new ShipmentBuilder().Build();
                var purchaseOrder = new PurchaseOrderBuilder().Build();

                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.PendingApproval);
                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);
                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Shipped);

                Assert.Throws <PurchaseOrderTrackerException>(() => shipment.AddPurchaseOrder(purchaseOrder));
            }
            public void OrderStatusCancelled_ExceptionThrown()
            {
                var shipment      = new ShipmentBuilder().Build();
                var purchaseOrder = new PurchaseOrderBuilder().Build();

                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Cancelled);

                Assert.Throws <PurchaseOrderTrackerException>(() => shipment.AddPurchaseOrder(purchaseOrder));
            }
コード例 #3
0
            public void CancelledStatus_RemovesShipmentReference()
            {
                var purchaseOrder = new PurchaseOrderBuilder().Shipment(new ShipmentBuilder().Build()).Build();

                Assert.That(purchaseOrder.Shipment, Is.Not.Null);
                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Cancelled);

                Assert.That(purchaseOrder.Shipment, Is.Null);
            }
            public void OrderAlreadyAssignedToShipment_ExceptionThrown()
            {
                var shipment      = new ShipmentBuilder().ShipmentId(123).Build();
                var poShipment    = new ShipmentBuilder().ShipmentId(789).Build();
                var purchaseOrder = new PurchaseOrderBuilder().Shipment(poShipment).Build();

                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);

                Assert.Throws <PurchaseOrderTrackerException>(() => shipment.AddPurchaseOrder(purchaseOrder));
            }
            public void OrderStatusIsApproved_OrderAdded()
            {
                var shipment      = new ShipmentBuilder().Build();
                var purchaseOrder = new PurchaseOrderBuilder().Build();

                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);

                shipment.AddPurchaseOrder(purchaseOrder);

                Assert.That(shipment.PurchaseOrders.Contains(purchaseOrder), Is.True);
            }
コード例 #6
0
            public void ShipmentStatusIsShipped_ReturnsFalse()
            {
                var shipment      = new ShipmentBuilder().Build();
                var purchaseOrder = new PurchaseOrderBuilder().Shipment(shipment).Build();

                purchaseOrder.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);
                shipment.UpdateStatus(ShipmentStatus.Trigger.Shipped);

                Assert.That(shipment.Status.CurrentState, Is.EqualTo(ShipmentStatus.State.Shipped));
                Assert.That(purchaseOrder.CanShipmentBeUpdated, Is.False);
            }
            public void UpdateToShipped_UpdatesAllPurchaseOrdersToShipped()
            {
                var purchaseOrder1 = new PurchaseOrderBuilder().Build();

                purchaseOrder1.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);
                var purchaseOrder2 = new PurchaseOrderBuilder().Build();

                purchaseOrder2.UpdateStatus(PurchaseOrderStatus.Trigger.Approved);
                var shipment = new ShipmentBuilder()
                               .PurchaseOrders(new List <PurchaseOrder>(new[]
                {
                    purchaseOrder1,
                    purchaseOrder2
                }))
                               .Build();

                shipment.UpdateStatus(ShipmentStatus.Trigger.Shipped);

                Assert.That(
                    shipment.PurchaseOrders.All(p => p.Status.CurrentState == PurchaseOrderStatus.State.Shipped),
                    Is.True);
            }