public GameStatusResponse GetGameStatus(string gameId) { var gameStatus = GameKeeper.GetGameState(gameId); var response = new GameStatusResponse(gameStatus); return(response); }
public void GettingInvalidGameStateReturnsNull() { Assert.Throws <KeyNotFoundException>(() => { var gameState = GameKeeper.GetGameState("bogusId"); }); }
public void MajorDiagonalWinRegistersProperly() { /* |1| | | | * |0|1| |0| * |1|0|1|0| * |0|1|0|1| * */ var newGameId = GameKeeper.AddGame(4, 4, players); var move1 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 0)); var move2 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 1)); var move3 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 2)); var move4 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 3)); var move5 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 1)); var move6 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 0)); var move7 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 3)); var move8 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 2)); var move9 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 0)); var move10 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 1)); var move11 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 3)); var beforeMoveGameState = GameKeeper.GetGameState(newGameId); var move12 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 0)); var afterMoveGameState = GameKeeper.GetGameState(newGameId); Assert.AreEqual(Game.GameStates.IN_PROGRESS, beforeMoveGameState.State); Assert.IsNull(beforeMoveGameState.Winner); Assert.AreEqual(Game.GameStates.DONE, afterMoveGameState.State); Assert.AreEqual(players[1], afterMoveGameState.Winner); }
public void CanGetGameState() { var gameId1 = GameKeeper.AddGame(4, 4, players); var gameState = GameKeeper.GetGameState(gameId1); Assert.IsNotNull(gameState); Assert.AreEqual(Game.GameStates.IN_PROGRESS, gameState.State); Assert.IsNull(gameState.Winner); Assert.AreEqual(players, gameState.Players); }
public void PlayerCanQuitEvenWhenNotThatPlayersTurn() { var newGameId = GameKeeper.AddGame(4, 4, players); var move1 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 0)); var beforeMoveGameState = GameKeeper.GetGameState(newGameId); var move2 = GameKeeper.RegisterMove(newGameId, new QuitMove(players[0])); var afterMoveGameState = GameKeeper.GetGameState(newGameId); Assert.AreEqual(Game.GameStates.IN_PROGRESS, beforeMoveGameState.State); Assert.IsNull(beforeMoveGameState.Winner); Assert.AreEqual(Game.GameStates.DONE, afterMoveGameState.State); Assert.AreEqual(players[1], afterMoveGameState.Winner); // the player that didn't quit is the winner }
public void RowWinRegistersProperly() { var newGameId = GameKeeper.AddGame(4, 4, players); var move1 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 0)); var move2 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 0)); var move3 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 1)); var move4 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 1)); var move5 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 2)); var move6 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 2)); // each player should have 3 tokens on the board - player 0 in column 3 should win with one more token there... var beforeMoveGameState = GameKeeper.GetGameState(newGameId); var move7 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[0], 3)); var afterMoveGameState = GameKeeper.GetGameState(newGameId); Assert.AreEqual(Game.GameStates.IN_PROGRESS, beforeMoveGameState.State); Assert.IsNull(beforeMoveGameState.Winner); Assert.AreEqual(Game.GameStates.DONE, afterMoveGameState.State); Assert.AreEqual(players[0], afterMoveGameState.Winner); }