another interface that goes to api module (command factory)
This commit is contained in:
parent
d40ff90c6e
commit
fd7306f1a1
|
@ -1,9 +1,9 @@
|
||||||
package cat.hack3.codingtests.marsrover;
|
package cat.hack3.codingtests.marsrover;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
|
|
||||||
public class MarsRover implements RotableRiderRover {
|
public class MarsRover implements RotableRiderRover {
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ package cat.hack3.codingtests.marsrover;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.api.RoverDeployer;
|
import cat.hack3.codingtests.marsrover.api.RoverDeployer;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
|
|
||||||
public class MarsRoverDeployer implements RoverDeployer {
|
public class MarsRoverDeployer implements RoverDeployer {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package cat.hack3.codingtests.marsrover;
|
package cat.hack3.codingtests.marsrover;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cat.hack3.codingtests.marsrover.gps;
|
package cat.hack3.codingtests.marsrover.gps;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates.Latitude;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates.Latitude;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates.Longitude;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates.Longitude;
|
||||||
|
|
||||||
public class MapIncrementalPositionResolver {
|
public class MapIncrementalPositionResolver {
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package cat.hack3.codingtests.marsrover.gps;
|
package cat.hack3.codingtests.marsrover.gps;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates.Latitude;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates.Latitude;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates.Longitude;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates.Longitude;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package cat.hack3.codingtests.marsrover.gps;
|
package cat.hack3.codingtests.marsrover.gps;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMapInitializer;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMapInitializer;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMapInitializer;
|
||||||
|
|
||||||
module mars.station {
|
module mars.station {
|
||||||
requires rover.api;
|
requires rover.api;
|
||||||
requires java.logging;
|
requires java.logging;
|
||||||
|
|
||||||
provides cat.hack3.codingtests.marsrover.cartography.PlanetMapInitializer
|
provides PlanetMapInitializer
|
||||||
with cat.hack3.codingtests.marsrover.gps.MarsMapInitializer;
|
with cat.hack3.codingtests.marsrover.gps.MarsMapInitializer;
|
||||||
|
|
||||||
provides cat.hack3.codingtests.marsrover.api.RoverDeployer
|
provides cat.hack3.codingtests.marsrover.api.RoverDeployer
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cat.hack3.codingtests.marsrover.api;
|
package cat.hack3.codingtests.marsrover.api;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
|
|
||||||
public interface RotableRiderRover {
|
public interface RotableRiderRover {
|
||||||
enum Rotation {LEFT, RIGHT}
|
enum Rotation {LEFT, RIGHT}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cat.hack3.codingtests.marsrover.api;
|
package cat.hack3.codingtests.marsrover.api;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
|
|
||||||
public interface RoverDeployer {
|
public interface RoverDeployer {
|
||||||
RotableRiderRover deploy(PlanetMap map, Direction startingDirection);
|
RotableRiderRover deploy(PlanetMap map, Direction startingDirection);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package cat.hack3.codingtests.marsrover.cartography;
|
package cat.hack3.codingtests.marsrover.api.cartography;
|
||||||
|
|
||||||
public record Coordinates(Latitude latitude, Longitude longitude) {
|
public record Coordinates(Latitude latitude, Longitude longitude) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package cat.hack3.codingtests.marsrover.cartography;
|
package cat.hack3.codingtests.marsrover.api.cartography;
|
||||||
|
|
||||||
public enum Direction {
|
public enum Direction {
|
||||||
NORTH, SOUTH, EAST, WEST;
|
NORTH, SOUTH, EAST, WEST;
|
|
@ -1,4 +1,4 @@
|
||||||
package cat.hack3.codingtests.marsrover.cartography;
|
package cat.hack3.codingtests.marsrover.api.cartography;
|
||||||
|
|
||||||
public interface PlanetMap {
|
public interface PlanetMap {
|
||||||
Coordinates getNextPositionTowards(Direction direction);
|
Coordinates getNextPositionTowards(Direction direction);
|
|
@ -1,4 +1,4 @@
|
||||||
package cat.hack3.codingtests.marsrover.cartography;
|
package cat.hack3.codingtests.marsrover.api.cartography;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package cat.hack3.codingtests.marsrover.api.commands;
|
||||||
|
|
||||||
|
public interface CommandFactory {
|
||||||
|
RoverCommand createCommand(RoverCommand.Type type);
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package cat.hack3.codingtests.marsrover.api.commands;
|
||||||
|
|
||||||
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
|
|
||||||
|
public interface CommandFactoryInitializer {
|
||||||
|
CommandFactory initFor(RotableRiderRover rover);
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package cat.hack3.codingtests.marsrover.commands.api;
|
package cat.hack3.codingtests.marsrover.api.commands;
|
||||||
|
|
||||||
public interface RoverCommand {
|
public interface RoverCommand {
|
||||||
enum Type {MOVE_FORWARD, MOVE_BACKWARDS, TURN_LEFT, TURN_RIGHT}
|
enum Type {MOVE_FORWARD, MOVE_BACKWARDS, TURN_LEFT, TURN_RIGHT}
|
|
@ -1,4 +1,5 @@
|
||||||
module rover.api {
|
module rover.api {
|
||||||
exports cat.hack3.codingtests.marsrover.api;
|
exports cat.hack3.codingtests.marsrover.api;
|
||||||
exports cat.hack3.codingtests.marsrover.cartography;
|
exports cat.hack3.codingtests.marsrover.api.cartography;
|
||||||
|
exports cat.hack3.codingtests.marsrover.api.commands;
|
||||||
}
|
}
|
|
@ -2,7 +2,7 @@ package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
|
|
||||||
public class MoveBackwardsCommand implements RoverCommand {
|
public class MoveBackwardsCommand implements RoverCommand {
|
||||||
private final RotableRiderRover rover;
|
private final RotableRiderRover rover;
|
||||||
|
|
|
@ -2,7 +2,7 @@ package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
|
|
||||||
public class MoveForwardCommand implements RoverCommand {
|
public class MoveForwardCommand implements RoverCommand {
|
||||||
private final RotableRiderRover rover;
|
private final RotableRiderRover rover;
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
package cat.hack3.codingtests.marsrover.commands.api;
|
package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.MoveBackwardsCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactory;
|
||||||
import cat.hack3.codingtests.marsrover.commands.MoveForwardCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
import cat.hack3.codingtests.marsrover.commands.TurnLeftCommand;
|
|
||||||
import cat.hack3.codingtests.marsrover.commands.TurnRightCommand;
|
|
||||||
|
|
||||||
public class CommandFactory {
|
public class RoverCommandFactory implements CommandFactory {
|
||||||
private final RotableRiderRover rover;
|
private final RotableRiderRover rover;
|
||||||
|
|
||||||
public CommandFactory(RotableRiderRover rover) {
|
public RoverCommandFactory(RotableRiderRover rover) {
|
||||||
this.rover = rover;
|
this.rover = rover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public RoverCommand createCommand(RoverCommand.Type type) {
|
public RoverCommand createCommand(RoverCommand.Type type) {
|
||||||
return switch (type) {
|
return switch (type) {
|
||||||
case MOVE_FORWARD -> new MoveForwardCommand(rover);
|
case MOVE_FORWARD -> new MoveForwardCommand(rover);
|
|
@ -0,0 +1,12 @@
|
||||||
|
package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactory;
|
||||||
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactoryInitializer;
|
||||||
|
|
||||||
|
public class RoverCommandFactoryInitializer implements CommandFactoryInitializer {
|
||||||
|
@Override
|
||||||
|
public CommandFactory initFor(RotableRiderRover rover) {
|
||||||
|
return new RoverCommandFactory(rover);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@ package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
|
|
||||||
import static cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation.LEFT;
|
import static cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation.LEFT;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package cat.hack3.codingtests.marsrover.commands;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
|
|
||||||
import static cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation.RIGHT;
|
import static cat.hack3.codingtests.marsrover.api.RotableRiderRover.Rotation.RIGHT;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactoryInitializer;
|
||||||
|
import cat.hack3.codingtests.marsrover.commands.RoverCommandFactoryInitializer;
|
||||||
|
|
||||||
module rover.commands {
|
module rover.commands {
|
||||||
requires rover.api;
|
requires rover.api;
|
||||||
|
|
||||||
exports cat.hack3.codingtests.marsrover.commands.api;
|
provides CommandFactoryInitializer
|
||||||
|
with RoverCommandFactoryInitializer;
|
||||||
}
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package cat.hack3.codingtests.marsrover.plugin.station;
|
||||||
|
|
||||||
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactoryInitializer;
|
||||||
|
|
||||||
|
import java.util.ServiceLoader;
|
||||||
|
|
||||||
|
public class CommandFactoryInitializerProvider {
|
||||||
|
public CommandFactoryInitializer getNextAvailable() {
|
||||||
|
return ServiceLoader
|
||||||
|
.load(CommandFactoryInitializer.class)
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package cat.hack3.codingtests.marsrover.plugin.station;
|
package cat.hack3.codingtests.marsrover.plugin.station;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMapInitializer;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMapInitializer;
|
||||||
|
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
module station.plugin {
|
module station.plugin {
|
||||||
requires rover.api;
|
requires rover.api;
|
||||||
|
|
||||||
uses cat.hack3.codingtests.marsrover.cartography.PlanetMapInitializer;
|
uses cat.hack3.codingtests.marsrover.api.cartography.PlanetMapInitializer;
|
||||||
uses cat.hack3.codingtests.marsrover.api.RoverDeployer;
|
uses cat.hack3.codingtests.marsrover.api.RoverDeployer;
|
||||||
|
uses cat.hack3.codingtests.marsrover.api.commands.CommandFactoryInitializer;
|
||||||
|
|
||||||
exports cat.hack3.codingtests.marsrover.plugin.station;
|
exports cat.hack3.codingtests.marsrover.plugin.station;
|
||||||
}
|
}
|
|
@ -1,19 +1,20 @@
|
||||||
package cat.hack3.codingtests.marsrover.test;
|
package cat.hack3.codingtests.marsrover.test;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.api.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.PlanetMap;
|
import cat.hack3.codingtests.marsrover.api.cartography.PlanetMap;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.CommandFactory;
|
import cat.hack3.codingtests.marsrover.api.commands.CommandFactory;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
|
import cat.hack3.codingtests.marsrover.plugin.station.CommandFactoryInitializerProvider;
|
||||||
import cat.hack3.codingtests.marsrover.plugin.station.PlanetMapInitializerProvider;
|
import cat.hack3.codingtests.marsrover.plugin.station.PlanetMapInitializerProvider;
|
||||||
import cat.hack3.codingtests.marsrover.plugin.station.RoverDeployerProvider;
|
import cat.hack3.codingtests.marsrover.plugin.station.RoverDeployerProvider;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
import static cat.hack3.codingtests.marsrover.cartography.Direction.SOUTH;
|
import static cat.hack3.codingtests.marsrover.api.cartography.Direction.SOUTH;
|
||||||
import static cat.hack3.codingtests.marsrover.commands.api.RoverCommand.Type.*;
|
import static cat.hack3.codingtests.marsrover.api.commands.RoverCommand.Type.*;
|
||||||
|
|
||||||
public class CommonTests {
|
public class CommonTests {
|
||||||
|
|
||||||
|
@ -27,10 +28,12 @@ public class CommonTests {
|
||||||
|
|
||||||
private PlanetMapInitializerProvider gpsProvider;
|
private PlanetMapInitializerProvider gpsProvider;
|
||||||
private RoverDeployerProvider roverProvider;
|
private RoverDeployerProvider roverProvider;
|
||||||
|
private CommandFactoryInitializerProvider commandFactoryProvider;
|
||||||
|
|
||||||
protected void setup() {
|
protected void setup() {
|
||||||
gpsProvider = new PlanetMapInitializerProvider();
|
gpsProvider = new PlanetMapInitializerProvider();
|
||||||
roverProvider = new RoverDeployerProvider();
|
roverProvider = new RoverDeployerProvider();
|
||||||
|
commandFactoryProvider = new CommandFactoryInitializerProvider();
|
||||||
|
|
||||||
int mapWidth = 10;
|
int mapWidth = 10;
|
||||||
int mapHeight = 10;
|
int mapHeight = 10;
|
||||||
|
@ -41,13 +44,19 @@ public class CommonTests {
|
||||||
var marsMap = getMap(mapHeight, mapWidth, startingCoordinates);
|
var marsMap = getMap(mapHeight, mapWidth, startingCoordinates);
|
||||||
rover = getRover(marsMap);
|
rover = getRover(marsMap);
|
||||||
|
|
||||||
var commandFactory = new CommandFactory(this.rover);
|
var commandFactory = getCommandFactory(rover);
|
||||||
|
|
||||||
moveForwardCommand = commandFactory.createCommand(MOVE_FORWARD);
|
moveForwardCommand = commandFactory.createCommand(MOVE_FORWARD);
|
||||||
moveBackwardsCommand = commandFactory.createCommand(MOVE_BACKWARDS);
|
moveBackwardsCommand = commandFactory.createCommand(MOVE_BACKWARDS);
|
||||||
turnLeftCommand = commandFactory.createCommand(TURN_LEFT);
|
turnLeftCommand = commandFactory.createCommand(TURN_LEFT);
|
||||||
turnRightCommand = commandFactory.createCommand(TURN_RIGHT);
|
turnRightCommand = commandFactory.createCommand(TURN_RIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private CommandFactory getCommandFactory(RotableRiderRover rover) {
|
||||||
|
var commandFactoryInitializer = commandFactoryProvider.getNextAvailable();
|
||||||
|
return commandFactoryInitializer.initFor(rover);
|
||||||
|
}
|
||||||
|
|
||||||
private PlanetMap getMap(int mapHeight, int mapWidth, Coordinates startingCoordinates) {
|
private PlanetMap getMap(int mapHeight, int mapWidth, Coordinates startingCoordinates) {
|
||||||
var planetInitializer = gpsProvider.getNextAvailable();
|
var planetInitializer = gpsProvider.getNextAvailable();
|
||||||
return planetInitializer.setupNewMap(mapHeight, mapWidth, startingCoordinates, getObstacles());
|
return planetInitializer.setupNewMap(mapHeight, mapWidth, startingCoordinates, getObstacles());
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package cat.hack3.codingtests.marsrover.test;
|
package cat.hack3.codingtests.marsrover.test;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import static cat.hack3.codingtests.marsrover.cartography.Direction.*;
|
import static cat.hack3.codingtests.marsrover.api.cartography.Direction.*;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
public class MarsRoverTest extends CommonTests {
|
public class MarsRoverTest extends CommonTests {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cat.hack3.codingtests.marsrover.test;
|
package cat.hack3.codingtests.marsrover.test;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import org.testng.annotations.BeforeMethod;
|
import org.testng.annotations.BeforeMethod;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cat.hack3.codingtests.marsrover.ui.console;
|
package cat.hack3.codingtests.marsrover.ui.console;
|
||||||
|
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
package cat.hack3.codingtests.marsrover.ui.console;
|
package cat.hack3.codingtests.marsrover.ui.console;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.CommandFactory;
|
import cat.hack3.codingtests.marsrover.api.commands.RoverCommand;
|
||||||
import cat.hack3.codingtests.marsrover.commands.api.RoverCommand;
|
import cat.hack3.codingtests.marsrover.commands.api.RoverCommandFactory;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import static cat.hack3.codingtests.marsrover.commands.api.RoverCommand.Type.*;
|
import static cat.hack3.codingtests.marsrover.api.commands.RoverCommand.Type.*;
|
||||||
import static cat.hack3.codingtests.marsrover.ui.console.UICommons.isNotExitSignal;
|
import static cat.hack3.codingtests.marsrover.ui.console.UICommons.isNotExitSignal;
|
||||||
import static cat.hack3.codingtests.marsrover.ui.console.UICommons.output;
|
import static cat.hack3.codingtests.marsrover.ui.console.UICommons.output;
|
||||||
|
|
||||||
public class RoverCommandsPerformer {
|
public class RoverCommandsPerformer {
|
||||||
private final Scanner reader;
|
private final Scanner reader;
|
||||||
|
|
||||||
CommandFactory commandFactory;
|
RoverCommandFactory roverCommandFactory;
|
||||||
private final RoverCommand moveForwardCommand;
|
private final RoverCommand moveForwardCommand;
|
||||||
private final RoverCommand moveBackwardsCommand;
|
private final RoverCommand moveBackwardsCommand;
|
||||||
private final RoverCommand turnLeftCommand;
|
private final RoverCommand turnLeftCommand;
|
||||||
|
@ -21,11 +21,11 @@ public class RoverCommandsPerformer {
|
||||||
|
|
||||||
public RoverCommandsPerformer(Scanner reader, RotableRiderRover rover) {
|
public RoverCommandsPerformer(Scanner reader, RotableRiderRover rover) {
|
||||||
this.reader = reader;
|
this.reader = reader;
|
||||||
commandFactory = new CommandFactory(rover);
|
roverCommandFactory = new RoverCommandFactory(rover);
|
||||||
moveForwardCommand = commandFactory.createCommand(MOVE_FORWARD);
|
moveForwardCommand = roverCommandFactory.createCommand(MOVE_FORWARD);
|
||||||
moveBackwardsCommand = commandFactory.createCommand(MOVE_BACKWARDS);
|
moveBackwardsCommand = roverCommandFactory.createCommand(MOVE_BACKWARDS);
|
||||||
turnLeftCommand = commandFactory.createCommand(TURN_LEFT);
|
turnLeftCommand = roverCommandFactory.createCommand(TURN_LEFT);
|
||||||
turnRightCommand = commandFactory.createCommand(TURN_RIGHT);
|
turnRightCommand = roverCommandFactory.createCommand(TURN_RIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void acceptCommandsUntilExitSignal() {
|
public void acceptCommandsUntilExitSignal() {
|
||||||
|
|
|
@ -2,8 +2,8 @@ package cat.hack3.codingtests.marsrover.ui.console;
|
||||||
|
|
||||||
import cat.hack3.codingtests.marsrover.MarsRover;
|
import cat.hack3.codingtests.marsrover.MarsRover;
|
||||||
import cat.hack3.codingtests.marsrover.RotableRiderRover;
|
import cat.hack3.codingtests.marsrover.RotableRiderRover;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Coordinates;
|
import cat.hack3.codingtests.marsrover.api.cartography.Coordinates;
|
||||||
import cat.hack3.codingtests.marsrover.cartography.Direction;
|
import cat.hack3.codingtests.marsrover.api.cartography.Direction;
|
||||||
import cat.hack3.codingtests.marsrover.gps.MarsMap;
|
import cat.hack3.codingtests.marsrover.gps.MarsMap;
|
||||||
|
|
||||||
import java.util.InputMismatchException;
|
import java.util.InputMismatchException;
|
||||||
|
|
Loading…
Reference in New Issue