public void Should_be_possible_to_evaluate_variable_for_path_entity_when_filename_is_nil()
        {
            var sourceObject       = ProbeHelper.GetOvalComponentByOvalID(this.Definitions, ConstantHelper.OBJECT_ID_1071);
            var pathVariableID     = this.GetVariableReferenceID(sourceObject.id, ConstantHelper.PathEntityName);
            var pathVariableValue  = this.GetVariableValue(pathVariableID);
            var variablesAndValues = new Dictionary <String, IEnumerable <String> >();

            variablesAndValues.Add(pathVariableID, new string[] { pathVariableValue });
            var evaluatedVariables = VariableHelper.CreateEvaluatedVariables(sourceObject.id, variablesAndValues);
            var variableEvaluator  = new FileEffectiveRights53EntityVariableEvaluator(evaluatedVariables);

            var evaluationResult = variableEvaluator.ProcessVariables(sourceObject);

            Assert.IsNotNull(evaluationResult);
            Assert.AreEqual(1, evaluationResult.Count());
            var entities = evaluationResult.Single().GetEntityBaseTypes();

            Assert.AreEqual(3, entities.Count());
            var pathEntity = entities.ElementAt(0);

            Assert.IsNotNull(pathEntity);
            Assert.AreEqual(GetVariableValue(GetVariableReferenceID(sourceObject.id, "path")), pathEntity.Value);
            var filenameEntity = entities.ElementAt(1);

            Assert.IsNotNull(filenameEntity);
            Assert.AreEqual(string.Empty, filenameEntity.Value);
            var trusteeSidEntity = entities.ElementAt(2);

            Assert.IsNotNull(trusteeSidEntity);
            Assert.AreEqual("S-1-15-500", trusteeSidEntity.Value);
        }
        public void Should_be_possible_to_evaluate_variable_for_all_entities_at_same_time()
        {
            var sourceObject       = ProbeHelper.GetOvalComponentByOvalID(this.Definitions, ConstantHelper.OBJECT_ID_1050);
            var variablesAndValues = this.CreateVariableAndValuesDictionary(sourceObject.id);
            var evaluatedVariables = VariableHelper.CreateEvaluatedVariables(sourceObject.id, variablesAndValues);
            var variableEvaluator  = new FileEffectiveRights53EntityVariableEvaluator(evaluatedVariables);

            var evaluationResult = variableEvaluator.ProcessVariables(sourceObject);

            DoBasicAssertForVariableProcessing(evaluationResult, 1, typeof(fileeffectiverights53_object));
            var pathVariableValue = this.GetVariableValue(variablesAndValues.ElementAt(0).Key);

            AssertObjectEntity(evaluationResult.First(), ConstantHelper.PathEntityName, pathVariableValue);
            var filenameVariableValue = this.GetVariableValue(variablesAndValues.ElementAt(1).Key);

            AssertObjectEntity(evaluationResult.First(), ConstantHelper.FilenameEntityName, filenameVariableValue);
            var trusteeSIDVariableValue = this.GetVariableValue(variablesAndValues.ElementAt(2).Key);

            AssertObjectEntity(evaluationResult.First(), ConstantHelper.TrusteeSIDEntityName, trusteeSIDVariableValue);
            AssertCorrectnessOfFileEntities((fileeffectiverights53_object)evaluationResult.First());
        }