Beispiel #1
0
        public void  NextGen_GridReturnedFromGenServiceBecomesNewState()
        {
            // Arrange
            var rows = Faker.RandomNumber.Next(2, 10);
            var cols = Faker.RandomNumber.Next(2, 10);
            // Create a dummy grid to be returned by the Generation service
            var gridToReturn = new GridBuilder()
                               .WithCols(cols)
                               .WithRows(rows)
                               .Build();

            // Creat a stub gen service, give it the grid to return
            var genService = new GenerationServiceBuilder()
                             .NextGeneration_Returns(gridToReturn)
                             .Build();

            // Act
            var sut = _createSubjectUnderTest(rows, cols, genService: genService);

            sut.StartGame();
            sut.NextGen();

            // Assert
            Assert.AreSame(gridToReturn, sut.GameState);
        }
Beispiel #2
0
        public void  NextGen_EmitsEventWithNewState()
        {
            // Arrange
            var rows = Faker.RandomNumber.Next(2, 10);
            var cols = Faker.RandomNumber.Next(2, 10);
            // Create a dummy grid to be returned by the Generation service
            var newGameState = new GridBuilder()
                               .WithCols(cols)
                               .WithRows(rows)
                               .Build();

            // Creat a stub gen service, give it the grid to return
            var genService = new GenerationServiceBuilder()
                             .NextGeneration_Returns(newGameState)
                             .Build();

            // Create Event Emitter
            var eventEmitter = new GameEventEmitterBuilder().Build();

            // Act
            var sut = _createSubjectUnderTest(rows, cols, genService: genService, eventEmitter: eventEmitter);

            sut.StartGame();
            sut.NextGen();

            // Assert
            eventEmitter
            .Received(1)
            .NewGameStateEvent(newGameState);
        }