public void ShouldHighlightMovablePositions() { var game = new Game(new Board(3, 3, _ => false)); game.Board[new Position(0, 0)].Piece = InitialSetup.CreatePiece(Spy.Rank, game.Players[0]); game.Board[new Position(0, 1)].Piece = InitialSetup.CreatePiece(Spy.Rank, game.Players[0]); game.Board[new Position(1, 0)].Piece = InitialSetup.CreatePiece(Spy.Rank, game.Players[0]); game.Board[new Position(2, 2)].Piece = InitialSetup.CreatePiece(Spy.Rank, game.Players[1]); var viewModel = new GameViewModel(game); var cellPositions = GetCellPositions(viewModel); cellPositions(c => c.IsMovable).Should().BeEquivalentTo(new[] { new Position(0, 1), new Position(1, 0) }); viewModel.Board[new Position(1, 0)].Background.Should().Be(KnownColors.Movable); viewModel.Board[new Position(0, 1)].Background.Should().Be(KnownColors.Movable); viewModel.Board[new Position(0, 0)].Background.Should().Be(KnownColors.NotMovable); viewModel.Board[new Position(2, 2)].Background.Should().Be(KnownColors.NotMovable); viewModel.Board[new Position(1, 0)].OnClick(); viewModel.Board[new Position(1, 1)].OnClick(); cellPositions(c => c.IsMovable).Should().BeEquivalentTo(new[] { new Position(2, 2) }); }
AttackTestContext(int attackerRank, int defenderRank) { Game = new Game(new Board(2, 1, _ => false)); Attacker = Game.Board[Position1].Piece = InitialSetup.CreatePiece(attackerRank, Game.Players[0]); Defender = Game.Board[Position2].Piece = InitialSetup.CreatePiece(defenderRank, Game.Players[1]); GameViewModel = new GameViewModel(Game); }
public void ShouldShowPieceNames() { var min = Flag.Rank; var max = Bomb.Rank; var game = new Game(new Board(1, max - min + 1, _ => false)); for (var rank = min; rank <= max; rank++) { game.Board[new Position(0, rank - min)].Piece = InitialSetup.CreatePiece(rank, game.Players[1]); } var viewModel = new GameViewModel(game); viewModel.Board.Cells.Select(c => c.PieceShortName).Should().Equal(new[] { "F", "S", "2", "3", "4", "5", "6", "7", "8", "9", "10", "B" }); viewModel.Board.Cells.Select(c => c.PieceLongName).Should().Equal(new[] { "Flag", "Spy", "Scout", "Miner", "Sergeant", "Lieutenant", "Captain", "Major", "Colonel", "General", "Marshal", "Bomb" }); }