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

            BikeBuilder mBuilder = new MountainBikeBuilder();
            BikeBuilder rBuilder = new RoadBikeBuilder();

            BikeShop shop = new BikeShop();

            shop.Build(mBuilder);

            mBuilder.Bike.DescribeBike();

            shop.Build(rBuilder);

            rBuilder.Bike.DescribeBike();
        }
示例#2
0
        public void BikeShop_Build_BuildsBikes()
        {
            // Arrange
            BikeShop           shop        = new BikeShop();
            Mock <BikeBuilder> mockBuilder = new Mock <BikeBuilder>();

            // Act
            shop.Build(mockBuilder.Object);

            // Assert
            mockBuilder.Verify(m => m.AddBrakes(), Times.Once);
            mockBuilder.Verify(m => m.AddFrame(), Times.Once);
            mockBuilder.Verify(m => m.AddWheels(), Times.Once);
        }