Example #1
0
        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);
        }
Example #2
0
        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)
                });
            }
        }