public void GetNextTurnPlayer() { IGameEngine engine = GetDefaultGameEngine(2); IList <IPlayer> players = engine.Players; IPlayer player1 = players[0]; IPlayer player2 = players[1]; IPlayer nextPlayer = engine.GetNextTurnPlayer(); Assert.AreEqual(player1, nextPlayer); engine.DoTurn(); nextPlayer = engine.GetNextTurnPlayer(); Assert.AreEqual(player2, nextPlayer); }
public void gameActionOnOccupiedSpaceIsNotValid() { IGameEngine engine = GetDefaultGameEngine(2); IList <IPlayer> players = engine.Players; IPlayer player2 = players[1]; IGameAction action = player2.RequestAction(); //should request an action from player 1 and do that action engine.DoTurn(); //the original requested action should no longer be valid bool isValid = engine.IsValidGameAction(action); Assert.False(isValid); }
public void DoTurn() { IGameEngine engine = GetDefaultGameEngine(2); IBoard board = engine.Board; IList <IPlayer> players = engine.Players; IPlayer player2 = players[1]; Assert.True(board.IsEmpty(0, 0)); //should request an action from player 1 and do that action at 0,0 engine.DoTurn(); Assert.False(board.IsEmpty(0, 0)); IPlayer nextPlayer = engine.GetNextTurnPlayer(); Assert.AreEqual(player2, nextPlayer); }
public void ResetGame() { //set up the game, do 1 turn, reset the Game, and verify initial state IGameEngine engine = GetDefaultGameEngine(2); IBoard board = engine.Board; IList <IPlayer> players = engine.Players; Assert.AreEqual(2, players.Count); IPlayer player1 = players[0]; engine.DoTurn(); Assert.False(board.IsEmpty(0, 0)); engine.ResetGame(); //board should be clear Assert.True(board.IsEmpty(0, 0)); //player turn should be reset //game should not be finished Assert.AreEqual(player1, engine.GetNextTurnPlayer()); Assert.False(engine.GameChecker.IsGameOver); }