Пример #1
0
        public void TestAddShip_NotVerticalOrHorizontal_ErrorResponse()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);
            var result  = battleShipController.AddBoard() as JsonResult;
            var boardId = (result.Value as BoardResponse).BoardId;

            // Act
            var addShipResult = battleShipController.AddShip(new AddShipRequest()
            {
                BoardId      = boardId,
                HeadPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                },
                TailPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 7, Y = 8
                }
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(addShipResult);
            Assert.AreEqual(StatusCodes.Status400BadRequest, addShipResult.StatusCode);
            var value = addShipResult.Value as ErrorResponse;

            Assert.IsNotNull(value);
        }
Пример #2
0
        public void TestAddShip_BoardNotExist_ErrorResponse()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);

            // Act
            var addShipResult = battleShipController.AddShip(new AddShipRequest()
            {
                BoardId      = "fake id",
                HeadPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                },
                TailPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 6, Y = 6
                }
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(addShipResult);
            Assert.AreEqual(StatusCodes.Status400BadRequest, addShipResult.StatusCode);
            var value = addShipResult.Value as ErrorResponse;

            Assert.IsNotNull(value);
        }
Пример #3
0
        public void TestAddShip_Success()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);
            var result  = battleShipController.AddBoard() as JsonResult;
            var boardId = (result.Value as BoardResponse).BoardId;

            // Act
            var addShipResult = battleShipController.AddShip(new AddShipRequest()
            {
                BoardId = boardId, HeadPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                },
                TailPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 6, Y = 6
                }
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(addShipResult);
            Assert.AreEqual(StatusCodes.Status201Created, addShipResult.StatusCode);
            var value = addShipResult.Value as SuccessResponse;

            Assert.IsNotNull(value);
        }
        public void TestGetBoard_Fail()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();

            // Act
            var board = gameBoardsManager.GetBoard("fake id");

            // Assert
            Assert.IsNull(board);
        }
        public void TestDeleteBoard_Failed()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();

            // Act
            var exception = Assert.ThrowsException <Exception>(() => gameBoardsManager.DeleteBoard("fake id"));

            // Assert
            Assert.AreEqual("The board fake id doesn't exist.", exception.Message);
        }
        public void TestBoardExist_False()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();

            // Act
            var exist = gameBoardsManager.BoardExist("fake id");

            // Assert
            Assert.IsFalse(exist);
        }
        public void TestGetBoard_Success()
        {
            // Arrange
            var    gameBoardsManager = new GameBoardsManager();
            IBoard board             = new GameBoard();
            var    id = gameBoardsManager.AddBoard(board);

            // Act
            board = gameBoardsManager.GetBoard(id);

            // Assert
            Assert.IsNotNull(board);
        }
        public void TestBoardExist_True()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();
            var board             = new GameBoard();
            var id = gameBoardsManager.AddBoard(board);

            // Act
            var exist = gameBoardsManager.BoardExist(id);

            // Assert
            Assert.IsTrue(exist);
        }
Пример #9
0
        public void TestAttack_WasAttacked_ErrorResponse()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);
            var result  = battleShipController.AddBoard() as JsonResult;
            var boardId = (result.Value as BoardResponse).BoardId;

            battleShipController.AddShip(new AddShipRequest()
            {
                BoardId      = boardId,
                HeadPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                },
                TailPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 6, Y = 6
                }
            });

            battleShipController.Attack(new AttackRequest()
            {
                BoardId  = boardId,
                Position = new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                }
            });

            // Act
            var attackResult = battleShipController.Attack(new AttackRequest()
            {
                BoardId  = boardId,
                Position = new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                }
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(attackResult);
            Assert.AreEqual(StatusCodes.Status400BadRequest, attackResult.StatusCode);
            var value = attackResult.Value as ErrorResponse;

            Assert.IsNotNull(value);
            Assert.AreEqual("The position (5,6) has been attacked before.", value.ErrorMessages[0]);
        }
        public void TestAddBoard_Success()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();
            var board             = new GameBoard();

            // Act
            var id = gameBoardsManager.AddBoard(board);

            // Assert
            var isValid = Guid.TryParse(id, out _);

            Assert.IsTrue(isValid);
        }
        public void TestDeleteBoard_Success()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();
            var board             = new GameBoard();
            var id = gameBoardsManager.AddBoard(board);

            // Act
            gameBoardsManager.DeleteBoard(id);

            // Assert
            var exist = gameBoardsManager.BoardExist(id);

            Assert.IsFalse(exist);
        }
Пример #12
0
        public void TestAddBoard_Success()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);

            // Act
            var result = battleShipController.AddBoard() as JsonResult;

            // Arrange
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCodes.Status201Created, result.StatusCode);
            var value = result.Value as BoardResponse;

            Assert.IsNotNull(value);
            Assert.IsTrue(Guid.TryParse(value.BoardId, out _));
        }
Пример #13
0
        public void TestGetBoards_Success()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);

            // Act
            var result = battleShipController.GetBoards() as JsonResult;

            // Arrange
            Assert.IsNotNull(result);
            Assert.AreEqual(StatusCodes.Status200OK, result.StatusCode);
            var value = result.Value as BoardResponse[];

            Assert.IsNotNull(value);
            Assert.AreEqual(0, value.Length);
        }
        public void TestGetBoards_Success()
        {
            // Arrange
            var gameBoardsManager = new GameBoardsManager();
            var id1 = gameBoardsManager.AddBoard(new GameBoard());
            var id2 = gameBoardsManager.AddBoard(new GameBoard());

            // Act
            var boards = gameBoardsManager.GetBoards();

            // Assert
            var enumerable = boards as string[] ?? boards.ToArray();

            Assert.AreEqual(2, enumerable.Count());
            Assert.IsTrue(enumerable.Contains(id1));
            Assert.IsTrue(enumerable.Contains(id2));
        }
Пример #15
0
        public void TestAttack_HitResponse()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);
            var result  = battleShipController.AddBoard() as JsonResult;
            var boardId = (result.Value as BoardResponse).BoardId;

            battleShipController.AddShip(new AddShipRequest()
            {
                BoardId      = boardId,
                HeadPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                },
                TailPosition =
                    new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 6, Y = 6
                }
            });

            // Act
            var attackResult = battleShipController.Attack(new AttackRequest()
            {
                BoardId  = boardId,
                Position = new BattleShipStateTracker.Request.Coordinate()
                {
                    X = 5, Y = 6
                }
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(attackResult);
            Assert.AreEqual(StatusCodes.Status200OK, attackResult.StatusCode);
            var value = attackResult.Value as HitResponse;

            Assert.IsNotNull(value);
            Assert.IsTrue(value.Hit);
        }
Пример #16
0
        public void TestDeleteBoard_BoardNotExist_ErrorResponse()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);

            battleShipController.AddBoard();

            // Act
            var deleteBoardResult = battleShipController.DeleteBoard(new BoardRequest()
            {
                BoardId = "fake id",
            }) as JsonResult;

            // Arrange
            Assert.IsNotNull(deleteBoardResult);
            Assert.AreEqual(StatusCodes.Status400BadRequest, deleteBoardResult.StatusCode);
            var value = deleteBoardResult.Value as ErrorResponse;

            Assert.IsNotNull(value);
        }
Пример #17
0
        public void TestDeleteBoard_Success()
        {
            // Arrange
            var boardsManager        = new GameBoardsManager();
            var battleShipController = new BattleShipController(boardsManager);
            var result  = battleShipController.AddBoard() as JsonResult;
            var boardId = (result.Value as BoardResponse).BoardId;

            // Act
            var deleteBoardResult = battleShipController.DeleteBoard(new BoardRequest()
            {
                BoardId = boardId,
            }) as JsonResult;

            // Arrange
            Assert.IsNotNull(deleteBoardResult);
            Assert.AreEqual(StatusCodes.Status200OK, deleteBoardResult.StatusCode);
            var value = deleteBoardResult.Value as SuccessResponse;

            Assert.IsNotNull(value);
        }