Update of /cvsroot/mockobjects/no-stone-unturned/src/nostone/robot
In directory usw-pr-cvs1:/tmp/cvs-serv30192/src/nostone/robot
Added Files:
Motor.java Position.java Robot.java RobotTest.java
MoveRequest.java
Log Message:
Added code for Robot example
--- NEW FILE: Motor.java ---
package nostone.robot;
public interface Motor {
}
--- NEW FILE: Position.java ---
package nostone.robot;
public class Position {
private int northSouth;
private int eastWest;
public Position(int aNorthSouth, int anEastWest) {
northSouth = aNorthSouth;
eastWest = anEastWest;
}
}
--- NEW FILE: Robot.java ---
package nostone.robot;
public class Robot {
private Motor motor;
private Position currentPosition;
public Robot(Motor aMotor) {
motor = aMotor;
}
public void setCurrentPosition(Position position) {
currentPosition = position;
}
public void goTo(Position position) {
currentPosition = position;
}
public Position getCurrentPosition() {
return currentPosition;
}
}
--- NEW FILE: RobotTest.java ---
package nostone.robot;
import junit.framework.TestCase;
public class RobotTest extends TestCase {
public RobotTest(String name) {
super(name);
}
public void testGotoSamePlace() {
final Position POSITION = new Position(1, 1);
Motor mockMotor = new Motor() {
public void move(MoveRequest request) {
fail("Should be no moves");
}
};
Robot robot = new Robot(mockMotor);
robot.setCurrentPosition(POSITION);
robot.goTo(POSITION);
assertEquals("Should be same", POSITION, robot.getCurrentPosition());
}
static class AbstractMotorStub implements Motor {
int moveCount = 0;
}
public void testMoveOnePoint() {
final Position DESTINATION = new Position(1, 0);
AbstractMotorStub mockMotor = new AbstractMotorStub() {
public void move(MoveRequest request) {
assertEquals("Should be move", new MoveRequest(1, MoveRequest.SOUTH), request);
moveCount++;
assertEquals("Should be first move", 1, moveCount);
}
};
Robot robot = new Robot(mockMotor);
robot.setCurrentPosition(new Position(0, 0));
robot.goTo(DESTINATION);
assertEquals("Should be destination", DESTINATION, robot.getCurrentPosition());
assertEquals("Should be one move", 1, mockMotor.moveCount);
}
}
--- NEW FILE: MoveRequest.java ---
package nostone.robot;
public class MoveRequest {
public static final int SOUTH = 1;
private int distance;
private int direction;
public MoveRequest(int aDistance, int aDirection) {
distance = aDistance;
direction = aDirection;
}
}
|