示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }
示例#5
0
        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));
        }