public void Place_command_throw_arguent_exception_for_incorrect_command_param() { var originalPos = new SurfaceCoordinate { X_Position = 0, Y_Position = 0 }; var robotPosition = new RobotPosition(Direction.SOUTH, originalPos); var validator = new SurfaceCoordinateValidator(); var param = new MoveCommandParam(); var cmd = new PlaceCommand(param, validator); RobotPosition actualPosition = null; //var actual = cmd.GetCommandResult(out actualPosition); Assert.ThrowsException <ArgumentException>(() => cmd.GetCommandResult(null, out actualPosition)); }
public void Move_command_should_not_move_robot_in_0_0_South_to_anywhere() { var originalPos = new SurfaceCoordinate { X_Position = 0, Y_Position = 0 }; var robotPosition = new RobotPosition(Direction.SOUTH, originalPos); var validator = new SurfaceCoordinateValidator(); var param = new MoveCommandParam(); var cmd = new MoveCommand(param, validator); RobotPosition actualPosition = null; var actual = cmd.GetCommandResult(robotPosition, out actualPosition); Assert.AreEqual <bool>(false, actual); Assert.AreEqual <RobotPosition>(null, actualPosition); }
public void Move_command_should_move_robot_in_0_0_North_to_0_1_North() { var originalPos = new SurfaceCoordinate { X_Position = 0, Y_Position = 0 }; var robotPosition = new RobotPosition(Direction.NORTH, originalPos); var validator = new SurfaceCoordinateValidator(); var param = new MoveCommandParam(); var cmd = new MoveCommand(param, validator); RobotPosition actualPosition = null; var actual = cmd.GetCommandResult(robotPosition, out actualPosition); var expectedCoordinate = new SurfaceCoordinate { X_Position = 0, Y_Position = 1 }; Assert.AreEqual <bool>(true, actual); Assert.AreEqual <Direction>(Direction.NORTH, actualPosition.Direction); Assert.AreEqual <SurfaceCoordinate>(expectedCoordinate, actualPosition.Coordinate); }
private MoveCommandParam _GetMoveCommandParam(MoveDirection md) { var mcps = new MoveCommandParam[] { new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Run , Direction = 360-18 , Speed = 1}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Run , Direction = 0 , Speed = 1}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Run , Direction = 18 , Speed = 1}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 360-45 , Speed = 0}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 0 , Speed = 0}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 45 , Speed = 0}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 180-18 , Speed = 0}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 180 , Speed = 0}, new MoveCommandParam() { ActionStatus = Regulus.Project.TurnBasedRPG.ActionStatue.Idle , Direction = 180+18 , Speed = 0}, }; return mcps[(int)md]; }