示例#1
0
        public void IsLosingConditionShould_ReturnFalse_WhenNoMineOnBoardIsRevealed()
        {
            var board         = Board.CreateEmptyBoard(2);
            var mineGenerator = new MockMinesGenerator();

            mineGenerator.PlaceMines(2, board);
            var result = WinLoseChecker.IsLosingConditionWhenOneMineIsRevealed(board);

            Assert.False(result);
        }
示例#2
0
        public void ToStringShould_ReturnExpectedString_WhenThereIs1RevealedTopLeftMineInASize2Board()
        {
            var          mineGenerator  = new MockMinesGenerator();
            const string expectedString = "* 1 \n" + "1 1 \n";
            var          board          = Board.CreateEmptyBoard(2);

            mineGenerator.PlaceMines(1, board);
            HintGenerator.SetHints(board);
            board.RevealAllSquares();
            Assert.Equal(expectedString, board.ToString());
        }
示例#3
0
        public void PlaceMinesShould_SetSquaresOnTheTopRowToMines_WhenThereAre2MinesOnASize2Board()
        {
            var board          = Board.CreateEmptyBoard(2);
            var minesGenerator = new MockMinesGenerator();

            minesGenerator.PlaceMines(2, board);
            board.RevealAllSquares();

            const string expectedResult = "* * \n" +
                                          "0 0 \n";

            Assert.Equal(expectedResult, board.ToString());
        }
示例#4
0
        public void IsLosingConditionShould_ReturnTrue_WhenOneMineOnBoardAreRevealed()
        {
            var board         = Board.CreateEmptyBoard(2);
            var mineGenerator = new MockMinesGenerator();

            mineGenerator.PlaceMines(2, board);
            var topLeft = new Location(0, 0);
            var mineOne = board.GetSquare(topLeft);

            mineOne.Reveal();
            var result = WinLoseChecker.IsLosingConditionWhenOneMineIsRevealed(board);

            Assert.True(result);
        }
示例#5
0
        public void IsWinningConditionShould_ReturnFalse_WhenOneHintsOnBoardIsRevealed()
        {
            var board         = Board.CreateEmptyBoard(2);
            var mineGenerator = new MockMinesGenerator();

            mineGenerator.PlaceMines(2, board);
            var bottomLeft = new Location(1, 0);
            var hintOne    = board.GetSquare(bottomLeft);

            hintOne.Reveal();
            var result = WinLoseChecker.IsWinningConditionWhenAllHintsAreRevealed(board);

            Assert.False(result);
        }
示例#6
0
        public void SetUpShould_CreateA4by4HiddenBoard_WhenInputDifficultyLevelIs4()
        {
            const string difficultyLevelInput = "4";
            var          input          = new MockInput(new[] { difficultyLevelInput });
            var          output         = new MockOutput();
            var          minesGenerator = new MockMinesGenerator();
            var          game           = new Game(input, output, minesGenerator);

            game.CreateBoard();
            var          result         = game.Board.ToString();
            const string expectedResult = ". . . . \n" +
                                          ". . . . \n" +
                                          ". . . . \n" +
                                          ". . . . \n";

            Assert.Equal(expectedResult, result);
        }
示例#7
0
        public void GameShould_RevealEntireBoardAndWinTheGame_WhenInputLocationMatchesAllHintLocations()
        {
            const string difficultyLevelInput = "2";
            var          input          = new MockInput(new[] { difficultyLevelInput, "1,0", "1,1" });
            var          output         = new MockOutput();
            var          minesGenerator = new MockMinesGenerator();
            var          game           = new Game(input, output, minesGenerator);

            game.CreateBoard();
            game.Play();
            var          result         = game.Board.ToString();
            const string expectedResult = "* * \n" +
                                          "2 2 \n";

            Assert.Equal(expectedResult, result);
            Assert.Equal(GameState.Win, game.State);
        }