public void AprroveOrder_With_Design() { //Create the chain links Approver jennifer = new HeadChef(); Approver mitchell = new PurchasingManager(); Approver olivia = new GeneralManager(); //Create the chain can be change at runtime jennifer.SetSupervisor(mitchell); mitchell.SetSupervisor(olivia); // Generate and process purchase requests var p = new PurchaseOrder(2, 300, 1389, "Fresh Veggies"); //Act jennifer.ValidatePurchaseOrder(p); //Assert Assert.True(p.HasbeenValidated); }