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);
        }
Exemplo n.º 4
0
    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];
    }