Beispiel #1
0
        public void DontThrowErrorIfRevealIsOutOfIndex(int row, int columns)
        {
            var game = MineField.Create(5, 10);

            game.Reveal(row, columns);
            game.Should().AllBeAssignableTo <UndiscoveredCell>();
        }
Beispiel #2
0
        public void PoseFlagOnUndiscoveredCell()
        {
            var game = MineField.Create(5, 10);

            game.PoseFlag(1, 1);
            game[1, 1].Should().BeAssignableTo <FlaggedCell>();
        }
Beispiel #3
0
        public void ShowGameState()
        {
            var game = MineField.Create(5, 10);

            game.Should().HaveCount(25);
            game.Should().AllBeAssignableTo <UndiscoveredCell>();
        }
Beispiel #4
0
        public void DontWinfAllFlagArePlacedOnBombAndCellNotRevelated()
        {
            var game = MineField.Create(5, 10);

            game.OfType <UndiscoveredCell>().Where(a => a.HasBomb).ForEach(cell => game.PoseFlag(cell));
            game.Win.Should().BeFalse();
        }
Beispiel #5
0
        public void RevealEmptyCell()
        {
            var game      = MineField.Create(5, 10);
            var emptyCell = game.OfType <UndiscoveredCell>().First(a => !a.HasBomb);

            game.Reveal(emptyCell);
            game[emptyCell].Should().BeAssignableTo <EmptyCell>();
        }
Beispiel #6
0
        public void WinfOnlyIfAllFlagArePlacedOnBombAndCellRevelated()
        {
            var game = MineField.Create(5, 10);

            game.OfType <UndiscoveredCell>().Where(a => a.HasBomb).ForEach(cell => game.PoseFlag(cell));
            game.OfType <UndiscoveredCell>().Where(a => !a.HasBomb).ForEach(cell => game.Reveal(cell));
            game.Win.Should().BeTrue();
        }
Beispiel #7
0
        public void DontPoseMoreFlagsThanBombs()
        {
            var game = MineField.Create(5, 10);

            game.ForEach(cell => game.PoseFlag(cell));

            game.FlaggedCellCount.Should().Be(10);
        }
Beispiel #8
0
        public void RevealABomb()
        {
            var game        = MineField.Create(5, 10);
            var trappedCell = game.OfType <UndiscoveredCell>().First(a => a.HasBomb);

            game.Reveal(trappedCell);

            game.Fail.Should().BeTrue();
        }
Beispiel #9
0
        public void NotRevealFlaggedCell()
        {
            var game        = MineField.Create(5, 10);
            var trappedCell = game.OfType <UndiscoveredCell>().First(a => a.HasBomb);

            game.PoseFlag(trappedCell);
            game.Reveal(trappedCell);

            game[trappedCell].Should().BeAssignableTo <FlaggedCell>();
            game.Fail.Should().BeFalse();
        }
Beispiel #10
0
        public void GenerateSomeCellWithHiddenBomb()
        {
            var game = MineField.Create(5, 10);

            game.OfType <UndiscoveredCell>().Count(a => a.HasBomb).Should().Be(10);
        }
Beispiel #11
0
        public void ThrowErrorIfNoBombProvided(int numberOfBombs)
        {
            Action action = () => MineField.Create(5, numberOfBombs);

            action.Should().Throw <NoBombException>();
        }
Beispiel #12
0
        public void ThowErrorIfDemandMoreBombsThenZone()
        {
            Action action = () => MineField.Create(5, 25);

            action.Should().Throw <Exception>();
        }
Beispiel #13
0
        public void CreateNewGameBoard()
        {
            var game = MineField.Create(5, 10);

            game.Should().NotBeNull();
        }