diff --git a/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java b/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java index 4368e48..7370088 100644 --- a/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java +++ b/src/main/java/cat/hack3/codingtests/marsrover/Coordinates.java @@ -58,4 +58,8 @@ public class Coordinates { ", longitude=" + longitude + '}'; } + + public Coordinates copy() { + return new Coordinates(latitude, longitude); + } } diff --git a/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java b/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java index cdb3036..d8bf5da 100644 --- a/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java +++ b/src/main/java/cat/hack3/codingtests/marsrover/MarsRover.java @@ -25,7 +25,7 @@ public class MarsRover { } public Coordinates getCurrentCoordinates() { - return currentCoordinates; + return currentCoordinates.copy(); } public MarsMap.Direction getCurrentDirection() { diff --git a/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java b/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java index 7a0d148..c4649d9 100644 --- a/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java +++ b/src/test/java/cat/hack3/codingtests/marsrover/MarsRoverTest.java @@ -28,13 +28,23 @@ public class MarsRoverTest { @Test public void stepForward() { - Coordinates currentPosition = rover.moveForward(); - assertEquals(currentPosition, Coordinates.of(3, 3)); - assertEquals(rover.getCurrentDirection(), SOUTH); + Direction originalDirection = rover.getCurrentDirection(); - repeatAction(5, i -> rover.moveForward()); - assertEquals(rover.getCurrentCoordinates(), Coordinates.of(8, 3)); - assertEquals(rover.getCurrentDirection(), SOUTH); + Coordinates oneStepForward = rover.moveForward(); + + assertEquals(oneStepForward, Coordinates.of(3, 3)); + assertEquals(rover.getCurrentDirection(), originalDirection); + } + + @Test + public void loopTheWorldMovingForward() { + Coordinates originalCoordinates = rover.getCurrentCoordinates(); + Direction originalDirection = rover.getCurrentDirection(); + + repeatAction(10, i -> rover.moveForward()); + + assertEquals(rover.getCurrentCoordinates(), originalCoordinates); + assertEquals(rover.getCurrentDirection(), originalDirection); } @Test