Пример #1
0
 public StateTypeComparator(StateType stateType, ItemType itemType, VariablesEvaluated variables)
 {
     this.itemType = itemType;
     this.stateType = stateType;
     this.variables = variables;
 }
Пример #2
0
        private IEnumerable<string> GetAllStateEntities(StateType state)
        {
            var referencedVariables = new List<string>();
            foreach (var field in state.GetType().GetProperties())
            {
                var stateField = field.GetValue(state, null);

                if (stateField is EntityStateSimpleBaseType)
                    referencedVariables.Add(((EntityStateSimpleBaseType)stateField).var_ref);
                else if (stateField is EntityStateRecordType)
                {
                    var recordFields = ((EntityStateRecordType)stateField).field;
                    referencedVariables.AddRange(recordFields.Select(f => f.var_ref));
                }
            }

            return referencedVariables.ToArray();
        }
Пример #3
0
        private ResultEnumeration ExecuteStateComparator(ItemType collectedItem, StateType state, VariablesEvaluated evaluatedVariables)
        {
            try
            {
                var stateComparator = new StateTypeComparator(state, collectedItem, evaluatedVariables);
                if (stateComparator.IsEquals())
                    return ResultEnumeration.@true;

                return ResultEnumeration.@false;
            }
            catch (NotSupportedException)
            {
                return ResultEnumeration.unknown;
            }
        }
Пример #4
0
        private OVAL.Definitions.variableEvaluator.VariablesEvaluated CreateEvalutedVariablesFromStateType(
            StateType state, oval_results ovalResults)
        {
            var allStateEntities = GetAllStateEntities(state);
            var variableValues = new List<OVAL.Definitions.variableEvaluator.VariableValue>();

            foreach (var stateEntity in allStateEntities)
            {
                var newVariableValue = CreateVariableValuesFromStateEntity(state.id, stateEntity, ovalResults);
                if (newVariableValue != null)
                    variableValues.Add(newVariableValue);
            }

            return
                new OVAL.Definitions.variableEvaluator.VariablesEvaluated(
                    variableValues);
        }
Пример #5
0
 private PropertyInfo GetPropertyInfoByName(StateType stateType, string entityName)
 {
     var allStateEntities = stateType.GetType().GetProperties();
     var entity = allStateEntities.FirstOrDefault(property => property.Name.Equals(entityName));
     Assert.IsNotNull(entity, string.Format("'{0}' entity was not found.", entityName));
     return entity;
 }
Пример #6
0
 private void AssertStateEntityNameResolution(StateType stateType, string entityName, string expectedResolvedEntityName)
 {
     var entity = GetPropertyInfoByName(stateType, entityName);
     var resolvedEntityName = new StateEntityNameResolver().Resolve(entity);
     Assert.AreEqual(expectedResolvedEntityName, resolvedEntityName, string.Format(FAILED_ENTITY_NAME_RESOLVING, resolvedEntityName));
 }