public void DontThrowErrorIfRevealIsOutOfIndex(int row, int columns) { var game = MineField.Create(5, 10); game.Reveal(row, columns); game.Should().AllBeAssignableTo <UndiscoveredCell>(); }
public void PoseFlagOnUndiscoveredCell() { var game = MineField.Create(5, 10); game.PoseFlag(1, 1); game[1, 1].Should().BeAssignableTo <FlaggedCell>(); }
public void ShowGameState() { var game = MineField.Create(5, 10); game.Should().HaveCount(25); game.Should().AllBeAssignableTo <UndiscoveredCell>(); }
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(); }
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>(); }
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(); }
public void DontPoseMoreFlagsThanBombs() { var game = MineField.Create(5, 10); game.ForEach(cell => game.PoseFlag(cell)); game.FlaggedCellCount.Should().Be(10); }
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(); }
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(); }
public void GenerateSomeCellWithHiddenBomb() { var game = MineField.Create(5, 10); game.OfType <UndiscoveredCell>().Count(a => a.HasBomb).Should().Be(10); }
public void ThrowErrorIfNoBombProvided(int numberOfBombs) { Action action = () => MineField.Create(5, numberOfBombs); action.Should().Throw <NoBombException>(); }
public void ThowErrorIfDemandMoreBombsThenZone() { Action action = () => MineField.Create(5, 25); action.Should().Throw <Exception>(); }
public void CreateNewGameBoard() { var game = MineField.Create(5, 10); game.Should().NotBeNull(); }