public virtual IEnumerable<ItemType> GetItemsToCollect(OVAL.Definitions.ObjectType objectType, VariablesEvaluated variables)
        {
            var serviceNameEntity = ((runlevel_object)objectType).GetItemValue("service_name");
            var serviceNameValues = this.EvaluateVariable((EntityObjectStringType)serviceNameEntity, variables);

            IEnumerable<string> serviceUniverse = null;

            var operation = ((EntitySimpleBaseType)serviceNameEntity).operation;
            if (operation == OperationEnumeration.patternmatch)
            {
                serviceUniverse = GetServiceUniverse();
                serviceNameValues = this.DoPatternMatch(serviceNameValues, serviceUniverse);
            }
            else if (operation == OperationEnumeration.notequal)
            {
                serviceUniverse = GetServiceUniverse();
                serviceNameValues = this.NotEqualOperation(serviceNameValues, serviceUniverse);
            }

            var runLevelEntity = ((runlevel_object)objectType).GetItemValue("runlevel");
            var runLevelValues = this.EvaluateVariable((EntityObjectStringType)runLevelEntity, variables);

            var itemsToCollect = new List<ItemType>();
            foreach (var serviceName in serviceNameValues)
            {
                foreach (var runLevelName in runLevelValues)
                {
                    var newItemToCollect = new runlevel_item() { 
                        service_name = OvalHelper.CreateItemEntityWithStringValue(serviceName),
                        runlevel = OvalHelper.CreateItemEntityWithStringValue(runLevelName) };
                    itemsToCollect.Add(newItemToCollect);
                }
            }

            return itemsToCollect;
        }
 private void AssertRunlevelItem(
     runlevel_item runlevelItemToAssert,
     string expectedServiceName,
     string expectedRunlevelValue)
 {
     ItemTypeEntityChecker.AssertItemTypeEntity(runlevelItemToAssert.service_name, expectedServiceName);
     ItemTypeEntityChecker.AssertItemTypeEntity(runlevelItemToAssert.runlevel, expectedRunlevelValue);
     Assert.IsNull(runlevelItemToAssert.start);
     Assert.IsNull(runlevelItemToAssert.kill);
 }