Example #1
0
        public void OneMineMinefield_PropagationShouldUncoverAllButOne()
        {
            //Arrange
            IBooleansGenerator booleansGenerator = Substitute.For <IBooleansGenerator>();

            booleansGenerator.GenerateBooleans(Arg.Any <int>(), Arg.Any <int>())
            .Returns(x =>
            {
                var r = new bool[(int)x[0]];
                r[0]  = true;     //Only the first item will be set to true.
                return(r);
            });

            int horizontalTilesCount  = 5;
            int verticalTilesCount    = 5;
            IMinefieldFactory factory = new MinefieldFactory(booleansGenerator);
            var minefield             = factory.CreateNew(horizontalTilesCount, verticalTilesCount, 1);
            var someTile = minefield.Tiles[3][3];

            //Act
            minefield.TilesCovered.ShouldBe(horizontalTilesCount * verticalTilesCount);
            someTile.UncoverTile();

            //Assert
            minefield.TilesCovered.ShouldBe(1);
        }
Example #2
0
 public MinefieldFactory(IBooleansGenerator booleansGenerator)
 {
     this.booleansGenerator = booleansGenerator;
 }