public void Robbie_Can_Hit_Wall() { IDictionary<Situation, RobotAction> moveNorthStrategy = GetSimpleStrategy(RobotAction.MoveNorth); Robot robbie = new Robot(moveNorthStrategy); Board board = new Board(10, 10); Point initialPos = new Point(0, 0); board.AddElement(robbie, initialPos); robbie.Act(board); Assert.IsTrue(board.Contents(initialPos).Contains(robbie)); }
public void Robbie_State_Change_Hash_Code_Remains_Constant() { IDictionary<Situation, RobotAction> strategy = GetSimpleStrategy(RobotAction.PickUpCan); Scorer scorer = new Scorer(); Robot robbie = new Robot(strategy, scorer); var startingHashCode = robbie.GetHashCode(); robbie._scorer.Add(Robot.ActionResult.HitWall); var endingHashCode = robbie.GetHashCode(); Assert.AreEqual(startingHashCode, endingHashCode); }
public void Robbie_Can_Fail_To_Pickup_Rubbish() { IDictionary<Situation, RobotAction> pickupStrategy = GetSimpleStrategy(RobotAction.PickUpCan); Robot robbie = new Robot(pickupStrategy); Board board = new Board(10, 10); Point initialPos = new Point(0, 0); board.AddElement(robbie, initialPos); Assert.IsTrue(board.Contents(initialPos).Contains(robbie)); robbie.Act(board); Assert.IsTrue(board.Contents(initialPos).Contains(robbie)); }
public void Robbie_Can_Do_Nothing() { IDictionary<Situation, RobotAction> stayPutStrategy = GetSimpleStrategy(RobotAction.StayPut); Robot robbie = new Robot(stayPutStrategy); Board board = new Board(10, 10); Point initialPos = new Point(0, 0); board.AddElement(robbie, initialPos); Assert.IsTrue(board.Contents(initialPos).Contains(robbie)); robbie.Act(board); Assert.IsTrue(board.Contents(initialPos).Contains(robbie)); }
public void Robot_Can_Move() { IDictionary<Situation, RobotAction> alwaysMoveSouthStrategy = GetSimpleStrategy(RobotAction.MoveSouth); Robot robbie = new Robot(alwaysMoveSouthStrategy); Board board = new Board(10, 10); Point initialPos = new Point(0, 0); board.AddElement(robbie, initialPos); robbie.Act(board); Assert.IsFalse(board.Contents(initialPos).Contains(robbie)); Assert.IsTrue(board.Contents(initialPos + new Point(1, 0)).Contains(robbie)); }