public void DeliveredStatus_ReturnsFalse()
            {
                var shipment = new ShipmentBuilder().Build();

                shipment.UpdateStatus(ShipmentStatus.Trigger.Shipped);
                shipment.UpdateStatus(ShipmentStatus.Trigger.Delivered);

                Assert.That(shipment.CanBeDeleted, Is.False);
            }
            public void DelayedButDelivered_ReturnsFalse()
            {
                var shipment = new ShipmentBuilder()
                               .EstimatedArrivalDate(DateTime.Today.AddDays(-8))
                               .Build();

                shipment.UpdateStatus(ShipmentStatus.Trigger.Shipped);
                shipment.UpdateStatus(ShipmentStatus.Trigger.Delivered);

                Assert.That(shipment.IsDelayedMoreThan7Days(), Is.False);
            }
예제 #3
0
            public void ShipmentIsDelivered_ReturnsFalse()
            {
                var shipment      = new ShipmentBuilder().Build();
                var purchaseOrder = new PurchaseOrderBuilder().Shipment(shipment).Build();

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

                Assert.That(shipment.Status.CurrentState, Is.EqualTo(ShipmentStatus.State.Delivered));
                Assert.That(purchaseOrder.CanShipmentBeUpdated, Is.False);
            }
            public void AwaitingShippingStatus_ReturnsTrue()
            {
                var shipment = new ShipmentBuilder().Build();

                shipment.UpdateStatus(ShipmentStatus.Trigger.AwaitingShipping);

                Assert.That(shipment.CanBeDeleted, Is.True);
            }
            public void UpdateToDelivered_UpdatesAllPurchaseOrdersToDelivered()
            {
                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);

                shipment.UpdateStatus(ShipmentStatus.Trigger.Delivered);

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