static void Main(string[] args) { var counter = 0; var deliveryManager = new DeliveryManagerSubject(); var droneDelivery = new DroneDeliveryObserver(deliveryManager); var taxiDelivery = new TaxiDeliveryObserver(deliveryManager); var employeeDelivery = new EmployeeDeliveryObserver(deliveryManager); do { deliveryManager.Delivery = new Delivery { CustomerName = $"Customer #{counter}", DeliveryType = GetRandomDeliveryType() }; counter++; } while (counter < 100); Console.WriteLine("All pizza orders have been delivered"); Console.WriteLine($"Total Pizzas Deliveried: {counter}"); Console.WriteLine($"Drone Deliveries: {droneDelivery.TotalDeliveries}"); Console.WriteLine($"Taxi Deliveries: {taxiDelivery.TotalDeliveries}"); Console.WriteLine($"Employee Deliveries: {employeeDelivery.TotalDeliveries}"); Console.ReadKey(); }
public void Update_Increments_TotalDeliveries() { //Arrange var mockSubject = new Mock <DeliveryManagerSubject>(); mockSubject.Object.Delivery = new Delivery { DeliveryType = DeliveryType.Drone, CustomerName = "Test Customer" }; var observer = new DroneDeliveryObserver(mockSubject.Object); //Act observer.Update(); //Assert Assert.AreEqual(1, observer.TotalDeliveries); }