public void MoveRobot_MovingRightAndCheckBounds_ReturnsTrue() { var board = new Board(); var toyRobot = new ToyRobot(); // placing robot at 1,2,EAST toyRobot.Execute("PLACE 1,2,EAST", board); // moves to 2,2 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 2); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 2); // moves to 3,2 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 3); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 2); // moves to 4,2 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 4); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 2); // moves to 4,2 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 4); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 2); // moves to 4,2 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 4); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 2); }
public void MoveRobot_MovingUpAndCheckBounds_ReturnsTrue() { var board = new Board(); var toyRobot = new ToyRobot(); // placing robot at 1,2,NORTH toyRobot.Execute("PLACE 1,2,NORTH", board); // moves to 1,3 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 1); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 3); // moves to 1,4 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 1); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 4); // moves to 1,4 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 1); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 4); // moves to 1,4 toyRobot.MoveForward(board); Assert.AreEqual(expected: toyRobot.CurrentPosition.X, actual: 1); Assert.AreEqual(expected: toyRobot.CurrentPosition.Y, actual: 4); }
public void Move_WhenStatusIsOff() { var robot = new ToyRobot(new TableSurface(), _exceptionFactory); Exception ex = Assert.Throws <SafeException>(() => robot.MoveForward()); Assert.Equal("please place this robot first", ex.Message); }
public void Move_WhenStatusIsOn_AtBoundary_InValidMovement(CompassDirections currentDirection, int currentPositionX, int currentPositionY) { var robot = new ToyRobot(new TableSurface(), _exceptionFactory); robot.Place(new RobotPosition { X = currentPositionX, Y = currentPositionY, Direction = currentDirection }); Exception ex = Assert.Throws <SafeException>(() => robot.MoveForward()); Assert.Equal("please place this robot first", ex.Message); }
public void Move_WhenStatusIsOn_AtBoundary_ValidMovement(CompassDirections currentDirection, int currentPositionX, int currentPositionY, int expectedPositionX, int expectedPositionY) { var robot = new ToyRobot(new TableSurface(), _exceptionFactory); robot.Place(new RobotPosition { X = currentPositionX, Y = currentPositionY, Direction = currentDirection }); robot.MoveForward(); Assert.Equal(RobotStatus.On, robot.Status); Assert.Equal(expectedPositionX, robot.Position.X); Assert.Equal(expectedPositionY, robot.Position.Y); Assert.Equal(currentDirection, robot.Position.Direction); }
public void Place_WhenStatusIsOn_InvaliadPosition(CompassDirections direction, int positionX, int positionY) { var robot = new ToyRobot(new TableSurface(), _exceptionFactory); robot.Place(new RobotPosition { X = 2, Y = 2, Direction = CompassDirections.NORTH }); robot.MoveForward(); Exception ex = Assert.Throws <SafeException>(() => robot.Place(new RobotPosition { X = positionX, Y = positionY, Direction = direction })); Assert.Equal("the robot cannot place to expected postion", ex.Message); }
public void Place_WhenStatusIsOn_ValiadPosition(CompassDirections direction, int positionX, int positionY) { var robot = new ToyRobot(new TableSurface(), _exceptionFactory); robot.Place(new RobotPosition { X = 2, Y = 2, Direction = CompassDirections.NORTH }); robot.MoveForward(); robot.Place(new RobotPosition { X = positionX, Y = positionY, Direction = direction }); Assert.Equal(RobotStatus.On, robot.Status); Assert.Equal(positionX, robot.Position.X); Assert.Equal(positionY, robot.Position.Y); Assert.Equal(direction, robot.Position.Direction); }