Exemplo n.º 1
0
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** ITERATOR PATTERN ***{Environment.NewLine}");

            BikeProductionLine productionLine = new BikeProductionLine(new Bike
            {
                ProductionNumber = 1
            });

            productionLine.Add(new Bike
            {
                ProductionNumber = 2
            });

            productionLine.Add(new Bike
            {
                ProductionNumber = 3
            });

            productionLine.Add(new Bike
            {
                ProductionNumber = 4
            });

            BikeIterator iterator = productionLine.CreateIterator();

            while (!iterator.IsFinished)
            {
                iterator.CurrentBike.Build();
                iterator.Next();
            }
        }
Exemplo n.º 2
0
        public void BikeProductionLine_CreateIterator_IteratorsAcrossAllBikesInPRoductionLine()
        {
            // Arrange
            Mock <Bike>        mockBike = new Mock <Bike>();
            BikeProductionLine line     = new BikeProductionLine(mockBike.Object);
            BikeIterator       iterator = line.CreateIterator();

            // Act
            while (!iterator.IsFinished)
            {
                iterator.CurrentBike.Build();
                iterator.Next();
            }

            // Assert
            mockBike.Verify(m => m.Build(), Times.Once);
        }