public void CanGetFirstGameMove() { 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], 0)); var move4 = GameKeeper.RegisterMove(newGameId, new TokenMove(players[1], 1)); var move = GameKeeper.GetGameMove(newGameId, move1); Assert.AreEqual(players[0], move.Player); Assert.AreEqual(DropTokenGame.MoveTypes.MOVE, move.MoveType); Assert.AreEqual(0, ((TokenMove)move).Column); }
public GetMoveResponse GetMove(string gameId, int move_number) { try { var move = GameKeeper.GetGameMove(gameId, move_number); var response = new GetMoveResponse() { type = move.MoveType, player = move.Player }; if (move.MoveType == MoveTypes.MOVE) { response.column = ((TokenMove)move).Column; } return(response); } catch (KeyNotFoundException ex) { // game not found throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(ex.Message) }); } catch (ApplicationException ex) { // game moves not found throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(ex.Message) }); } catch (ArgumentOutOfRangeException ex) { // invalid move number throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(ex.Message) }); } }