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)); }
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); }
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); }