public void MoveRight_WhenDirectionEast_ThenDirectionSouth() { var marsSurface = new MarsSurfaceStub(5, 3, true); var startPosition = new Vector2(1, 1); var robot = new MartianRobotStub(marsSurface, startPosition, Direction.East); _testee.Move(marsSurface, robot, MoveAction.TurnRight); Assert.AreEqual(Direction.South, robot.Direction); Assert.AreEqual(MarsRobotState.Active, robot.State); Assert.AreEqual( startPosition, robot.Position); }
public void MoveForward_WhenDirectionEastAndRobotOnBoarder_ThenLost() { var marsSurface = new MarsSurfaceStub(5, 3, false); var startPosition = new Vector2(4, 1); var robot = new MartianRobotStub(marsSurface, startPosition, Direction.East); _testee.Move(marsSurface, robot, MoveAction.Forward); Assert.AreEqual(Direction.East, robot.Direction); Assert.AreEqual(startPosition, robot.Position); Assert.AreEqual(MarsRobotState.Lost, robot.State); Assert.AreEqual(MarsSurfacePointState.WithScent, marsSurface.Surface[4, 1]); }
public void MoveLeft_WhenDirectionNorth_ThenDirectionWest() { var marsSurface = new MarsSurfaceStub(5, 3, true); var startPosition = new Vector2(1, 1); var robot = new MartianRobotStub(marsSurface, startPosition, Direction.North); _testee.Move(marsSurface, robot, MoveAction.TurnLeft); Assert.AreEqual(Direction.West, robot.Direction); Assert.AreEqual(MarsRobotState.Active, robot.State); Assert.AreEqual( startPosition, robot.Position); }
public void MoveForward_WhenDirectionNorth_ThenMoveForward() { var marsSurface = new MarsSurfaceStub(5, 3, true); var startPosition = new Vector2(1, 1); var robot = new MartianRobotStub(marsSurface, startPosition, Direction.North); _testee.Move(marsSurface, robot, MoveAction.Forward); Assert.AreEqual(Direction.North, robot.Direction); Assert.AreEqual(MarsRobotState.Active, robot.State); Assert.AreEqual( new Vector2(startPosition.X, startPosition.Y + 1), robot.Position); }
public void MoveForward_WhenDirectionNorthAndRobotOnBoarderButSurfaceWithScent_ThenDoNotMove() { var marsSurface = new MarsSurfaceStub(5, 3, false); marsSurface.Surface[0, 2] = MarsSurfacePointState.WithScent; var startPosition = new Vector2(0, 2); var robot = new MartianRobotStub(marsSurface, startPosition, Direction.North); _testee.Move(marsSurface, robot, MoveAction.Forward); Assert.AreEqual(Direction.North, robot.Direction); Assert.AreEqual( startPosition, robot.Position); Assert.AreEqual(MarsRobotState.Active, robot.State); Assert.AreEqual(MarsSurfacePointState.WithScent, marsSurface.Surface[0, 2]); }