예제 #1
0
        public void TestRobotMoveOffEdgeExpectFalse()
        {
            var boardService = new BoardService(new BoardPositionConverter(), new MockPositionValidator());
            var robotService = new RobotService(boardService, new PositionValidator());

            boardService.CreateNewBoard("test", 5, 5);
            robotService.PlaceRobot("test", new Vector2(1, 4), Direction.NORTH);
            Assert.Throws <RobotOutOfBoundsException>(() => robotService.MoveForward("test"));
        }
예제 #2
0
        public void TestRobotMoveFromDirectionExpectSuccess(Direction startingDirection, int expectedX, int expectedY)
        {
            var boardService = new BoardService(new BoardPositionConverter(), new MockPositionValidator());
            var robotService = new RobotService(boardService, new PositionValidator());

            boardService.CreateNewBoard("test", 5, 5);
            robotService.PlaceRobot("test", new Vector2(1, 1), startingDirection);
            var moveResult = robotService.MoveForward("test");

            Assert.True(moveResult);
            var newRobotPosition = robotService.GetRobot("test");

            Assert.Equal(new Vector2(expectedX, expectedY), newRobotPosition.Position);
        }