public void Given_SetStartPosition_Is_Not_Valid_Then_Throw_ArgumentExcpetion() { // ARRANGE var arena = new RectangleArena(); arena.SetArenaSize(1, 1); var robot = new Robot(arena); // ACT robot.SetStartPosition(new Position(3, 4, Orientation.East)); }
public void Given_Invalid_Command_Throw_Argument_Exception() { // ARRANGE var command = "L R M X"; var arena = new RectangleArena(); arena.SetArenaSize(5, 5); var robot = new Robot(arena); robot.SetStartPosition(new Position(0, 0, Orientation.North)); // ACT new MoveCommand(robot).Perform(command); }
public void Given_SetStartPosition_Is_Valid_Then_Position_Returns_InitialValue() { // ARRANGE var arena = new RectangleArena(); arena.SetArenaSize(3, 4); var robot = new Robot(arena); // ACT robot.SetStartPosition(new Position(2, 3, Orientation.East)); // ASSERT Assert.AreEqual(2, robot.Position.XCoordinate); Assert.AreEqual(3, robot.Position.YCoordinate); Assert.AreEqual(Orientation.East, robot.Position.Orientation); }
public void Given_Valid_Command_Then_Robot_Should_Have_Correct_Position() { // ARRANGE var command = "LRMM"; var arena = new RectangleArena(); arena.SetArenaSize(5, 5); var robot = new Robot(arena); robot.SetStartPosition(new Position(0, 0, Orientation.North)); // ACT new MoveCommand(robot).Perform(command); // ASSERT Assert.AreEqual(0, robot.Position.XCoordinate); Assert.AreEqual(2, robot.Position.YCoordinate); Assert.AreEqual(Orientation.North, robot.Position.Orientation); }
public void Given_Move_Is_Not_Valid_For_StartPosition_Then_Throw_InvalidOperationException() { // ARRANGE var arena = new RectangleArena(); arena.SetArenaSize(1, 1); var robot = new Robot(arena); robot.SetStartPosition(new Position(1, 1, Orientation.North)); // ACT robot.Move(Motion.Forward); }