Example #1
0
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** COMPOSITE PATTERN ***{Environment.NewLine}");

            PrototypeBike basicBike = new PrototypeBike("BasicBike");

            PrototypeBike basicMountainBike = new PrototypeBike("BasicMountainBike");
            PrototypeBike basicRoadBike     = new PrototypeBike("BasicRoadBike");

            basicBike.Add(basicMountainBike);
            basicBike.Add(basicRoadBike);


            ProductionBike speedy = new ProductionBike("Speedy");
            ProductionBike racer  = new ProductionBike("Racer");

            basicRoadBike.Add(speedy);
            basicRoadBike.Add(racer);

            ProductionBike rocky = new ProductionBike("Rocky");
            ProductionBike muddy = new ProductionBike("Muddy");

            basicMountainBike.Add(rocky);
            basicMountainBike.Add(muddy);


            // Display all the bikes
            basicBike.Display();
        }
Example #2
0
        public void AbstractBike_Display_CallDisplayMethodOfChildren()
        {
            // Arrange
            PrototypeBike basicBike = new PrototypeBike("BasicBike");

            PrototypeBike basicMountainBike = new PrototypeBike("BasicMountainBike");

            basicBike.Add(basicMountainBike);

            Mock <AbstractBike> mockAbstractBike = new Mock <AbstractBike>("TEST");

            basicMountainBike.Add(mockAbstractBike.Object);

            // Act
            basicBike.Display();

            // Assert
            mockAbstractBike.Verify(m => m.Display(It.IsAny <int>()), Times.Once);
        }