public GetMovesResponse GetGameMoves(string gameId, [FromUri] int?start = null, [FromUri] int?until = null) { try { var moves = GameKeeper.GetGameMoves(gameId, start, until); var moveResults = new List <GetMoveResponse>(); foreach (var move in moves) { var moveResult = new GetMoveResponse() { player = move.Player, type = move.MoveType }; if (move is TokenMove) { moveResult.column = ((TokenMove)move).Column; } ; moveResults.Add(moveResult); } return(new GetMovesResponse() { moves = moveResults }); } catch (KeyNotFoundException ex) { // game not found throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(ex.Message) }); } catch (ApplicationException ex) { // moves not found throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(ex.Message) }); } catch (IndexOutOfRangeException ex) { // invalid start or end indexes = malformed request throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(ex.Message) }); } catch (ArgumentException ex) { // the end index is less than the start index - malformed request throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(ex.Message) }); } }
public void GetGameMovesIsEmptyForNewGame() { var newGameId = GameKeeper.AddGame(4, 4, players); var moves = GameKeeper.GetGameMoves(newGameId); Assert.IsEmpty(moves); }
public void CanGetAllGameMoves() { 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 moves = GameKeeper.GetGameMoves(newGameId); Assert.AreEqual(4, moves.Count()); }
public void CanPostMoves() { 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)); Assert.AreEqual(0, move1); Assert.AreEqual(1, move2); var moves = GameKeeper.GetGameMoves(newGameId); Assert.AreEqual(2, moves.Count()); }
public void CanGetFirstTwoGameMoves() { 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 moves = GameKeeper.GetGameMoves(newGameId, 0, 1); Assert.AreEqual(2, moves.Count()); Assert.AreEqual(0, ((TokenMove)moves.First()).Column); Assert.AreEqual(1, ((TokenMove)moves.Last()).Column); }