Exemple #1
0
        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);
        }