public void Do_ThrowsIfPositionOccupiedAlready() { var p1 = new HumanPlayer("jim"); var p2 = new HumanPlayer("tim"); using (var game = new Game(p1, p2)) { var action = new OccupyGameAction(game, p1, 2, 1); Assert.DoesNotThrow(action.Do); Assert.Throws<InvalidOperationException>(action.Do); } }
public void Do_DoesLog() { var p1 = new HumanPlayer("jim"); var p2 = new HumanPlayer("tim"); using (var game = new Game(p1, p2)) { var action = new OccupyGameAction(game, p1, 2, 1); Assert.AreEqual(0, game.GameLog.Count); action.Do(); Assert.AreEqual(1, game.GameLog.Count); } }
public void Do_OccupiesSpaceCorrectly() { var p1 = new HumanPlayer("jim"); var p2 = new HumanPlayer("tim"); using (var game = new Game(p1, p2)) { var action = new OccupyGameAction(game, p1, 2, 1,0); action.Do(); Assert.NotNull(game.Board.BoardPositions[1][2]); Assert.AreEqual(p1, game.Board.BoardPositions[1][2]); } }
public void Consturctor_SetsClass() { var p1 = new HumanPlayer("jim"); var p2 = new HumanPlayer("tim"); using (var game = new Game(p1, p2)) { var action = new OccupyGameAction(game, p1, 2, 1, 0); Assert.AreEqual(p1, action.Player); Assert.AreEqual(game, action.Game); Assert.AreEqual(2, action.X); Assert.AreEqual(1, action.Y); } }
public void HandleClick() { if (GameVm.Game.Status == GameStatus.Finished) return; if (GameVm.Game.WinStatus != GameWinStatus.None) return; if (GameVm.Game.PlayerTurn is AiPlayer) return; if (GameVm.Game.Board.IsPositionOccupied(X, Y)) return; var action = new OccupyGameAction(GameVm.Game,GameVm.Game.PlayerTurn,X,Y,0); GameVm.Game.PerformAction(action); }