From: Steve F. <sm...@us...> - 2002-08-17 12:58:54
|
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; } } |