Ejemplo n.º 1
0
        public void GamePutMustReturnGameStatus()
        {
            // Given
            Player player = new Player();
            BoringToeMoveResponse returnData = new BoringToeMoveResponse(player, gridMock.Object);

            returnData.GameOver = true;
            returnData.Repeat   = false;
            returnData.Winner   = player;

            serviceMock.Setup(m => m.PlayerMove(It.IsAny <long>(), It.IsAny <BoringToeMoveRequest>()))
            .Returns(returnData);
            BoringToeController controller = new BoringToeController(serviceMock.Object);

            // When
            OkObjectResult        resp     = controller.Put(100, new BoringToeMoveRequest()) as OkObjectResult;
            BoringToeMoveResponse respData = resp.Value as BoringToeMoveResponse;

            // Then
            Assert.IsInstanceOf <BoringToeMoveResponse>(resp.Value, "Value must be if type BoringToeMoveResponse");
            Assert.AreEqual(returnData.GameOver, respData.GameOver, "Responses GameOver flag must be mocked one");
            Assert.AreEqual(returnData.Repeat, respData.Repeat, "Responses Repeat flag must be mocked one");
            Assert.AreEqual(player, respData.Winner, "Responses Winner must be mocked player");
            Assert.AreEqual(player, respData.Player, "Responses Winner must be mocked player");
            serviceMock.Verify(v => v.PlayerMove(It.IsAny <long>(), It.IsAny <BoringToeMoveRequest>()), Times.Once, "Service's Player Move must be called 1 time");
        }
Ejemplo n.º 2
0
        public void PlayerMoveMustReturnNextPlayer()
        {
            // Given
            string gridString = "AAABBBAAA";

            gridMock.Setup(m => m.ToString())
            .Returns(gridString);
            Player respPlayer = new Player();

            tictacMock.Setup(m => m.PlayerMove(It.IsAny <Player>(), It.IsAny <Coordinate>()))
            .Returns(respPlayer);
            tictacMock.Setup(m => m.GetGrid())
            .Returns(gridMock.Object);
            gameMock.Setup(m => m.GetGameById(It.IsAny <long>()))
            .Returns(tictacMock.Object);
            playerMock.Setup(m => m.GetPlayerById(It.IsAny <long>()))
            .Returns(respPlayer);

            // When
            IBoringToeService     service = new BoringToeService(gameMock.Object, playerMock.Object);
            BoringToeMoveResponse resp    = service.PlayerMove(1, new BoringToeMoveRequest(1, 1, 1));

            // Then
            Assert.AreEqual(respPlayer, resp.Player, "Response's player must be mocked one");
            Assert.AreEqual(false, resp.GameOver, "Response's game over flag must be false");
            Assert.IsNull(resp.Winner, "Response's winner data must be null");
            Assert.AreEqual(false, resp.Repeat, "Response's repeat flag must be false");
            Assert.AreEqual(gridString, resp.Grid, "Response's grid must be mocked one");
            tictacMock.Verify(m => m.PlayerMove(It.IsAny <Player>(), It.IsAny <Coordinate>()), Times.Once, "Must call game's playermove once");
            gameMock.Verify(m => m.GetGameById(It.IsAny <long>()), Times.Once, "Must call game repository get game once");
        }
Ejemplo n.º 3
0
        public void PlayerMoveMustRetryIfPlayerMovementExceptionIsRaised()
        {
            // Given
            Player respPlayer = new Player();
            string gridString = "AAABBBAAA";

            gridMock.Setup(m => m.ToString())
            .Returns(gridString);
            tictacMock.Setup(m => m.PlayerMove(It.IsAny <Player>(), It.IsAny <Coordinate>()))
            .Throws(new PlayerMovementException("", ErrorCode.MOVEMENT_ERROR_MUST_RETRY));
            tictacMock.Setup(m => m.GetGrid())
            .Returns(gridMock.Object);
            gameMock.Setup(m => m.GetGameById(It.IsAny <long>()))
            .Returns(tictacMock.Object);
            playerMock.Setup(m => m.GetPlayerById(It.IsAny <long>()))
            .Returns(respPlayer);

            // When
            IBoringToeService     service = new BoringToeService(gameMock.Object, playerMock.Object);
            BoringToeMoveResponse resp    = service.PlayerMove(1, new BoringToeMoveRequest(1, 1, 1));

            // Then
            Assert.AreEqual(respPlayer, resp.Player, "Response's player must be mocked one");
            Assert.AreEqual(false, resp.GameOver, "Response's game over flag must be false");
            Assert.IsNull(resp.Winner, "Response's winner info must be null");
            Assert.AreEqual(true, resp.Repeat, "Response's repeat flag must be true");
            Assert.AreEqual(gridString, resp.Grid, "Response's grid must be mocked one");
            tictacMock.Verify(m => m.PlayerMove(It.IsAny <Player>(), It.IsAny <Coordinate>()), Times.Once, "Must call game's playermove once");
            gameMock.Verify(m => m.GetGameById(It.IsAny <long>()), Times.Once, "Must call game repository get game once");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Generates user repeat response data object
        /// </summary>
        /// <param name="player">Player info</param>
        /// <param name="grid">Grid</param>
        /// <returns>Service response data</returns>
        private BoringToeMoveResponse GenerateRepeatUserResponseData(Player player, IGrid grid)
        {
            BoringToeMoveResponse resp = new BoringToeMoveResponse(player, grid);

            resp.GameOver = false;
            resp.Repeat   = true;
            resp.Winner   = null;
            resp.Grid     = grid.ToString();

            return(resp);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Generates Game Over no winner response data object
        /// </summary>
        /// <param name="grid">Grid</param>
        /// <returns>Service response data</returns>
        private BoringToeMoveResponse GenerateGameOverNoWinnerResponseData(IGrid grid)
        {
            BoringToeMoveResponse resp = new BoringToeMoveResponse(null, grid);

            resp.GameOver = true;
            resp.Repeat   = false;
            resp.Winner   = null;
            resp.Grid     = grid.ToString();

            return(resp);
        }
Ejemplo n.º 6
0
        public void GamePutMustReturnOk()
        {
            // Given
            Player player = new Player();
            BoringToeMoveResponse respData = new BoringToeMoveResponse(player, gridMock.Object);

            respData.GameOver = true;
            respData.Repeat   = false;
            respData.Winner   = player;

            serviceMock.Setup(m => m.PlayerMove(It.IsAny <long>(), It.IsAny <BoringToeMoveRequest>()))
            .Returns(respData);
            BoringToeController controller = new BoringToeController(serviceMock.Object);

            // When
            ActionResult resp = controller.Put(100, new BoringToeMoveRequest());

            // Then
            Assert.IsInstanceOf <OkObjectResult>(resp, "Value must be if type OkObjectResult");
        }