コード例 #1
0
        public void Robot_TakeSampleFromPosition_RobotSetToCorrespondingState(
            Facing initialFacing,
            int initial_location_X,
            int initial_location_Y,
            int initialBattery,
            Facing estimatedFacing,
            int estimaded_location_X,
            int estimaded_location_Y,
            int estimatedBattery,
            ElementType sampleCollected)
        {
            // Arrange
            var position = new Position(new Location(initial_location_X, initial_location_Y), initialFacing);
            var robot    = new Robot(position, initialBattery, robotStrategies,
                                     new FacingControl(), new MovingControl(),
                                     new[, ] {
                { sampleCollected }
            }, new Stack <CommandType>());

            // Act
            var command = new TakeSampleCommand();

            command.ExecuteCommand(robot);

            // Assert
            Assert.AreEqual(robot.Position.Facing, estimatedFacing);
            Assert.AreEqual(robot.Battery, estimatedBattery);
            Assert.AreEqual(robot.Position.Location.X, estimaded_location_X);
            Assert.AreEqual(robot.Position.Location.Y, estimaded_location_Y);
            Assert.Contains(robot.Position.Location, robot.VisitedCells);
            if (sampleCollected != ElementType.Obs)
            {
                Assert.Contains(sampleCollected, robot.SamplesCollected);
            }
        }