Ejemplo n.º 1
0
        public void Should_be_possible_to_collect_a_metabase_item_even_if_some_attributes_werent_present()
        {
            var fakeMetabaseItemToCollect = CreateMetabaseItemSample("/LM/W3SVC", "9202");

            var collectedItems =
                CreateMetabaseObjectCollectorWithBehavior(this.FakeMetabaseWithIncompleteSessionContent)
                .CollectDataForSystemItem(fakeMetabaseItemToCollect);

            ItemTypeChecker.DoBasicAssertForCollectedItems(collectedItems, 1, typeof(metabase_item), true);
            var collectedMetabaseItem = (metabase_item)collectedItems.First().ItemType;

            ItemTypeEntityChecker.AssertItemTypeEntity(collectedMetabaseItem.data.Single(), "4294967295");
            // Name Entity
            var nameEntity = collectedMetabaseItem.name;

            Assert.IsNotNull(nameEntity, "The name entity cannot be null.");
            Assert.AreEqual(StatusEnumeration.exists, nameEntity.status, "The name entity status must be 'exists'.");
            Assert.AreEqual(string.Empty, nameEntity.Value, "The name entity value must be an empty string.");
            // Data Type Entity
            var dataTypeEntity = collectedMetabaseItem.data_type;

            Assert.IsNotNull(dataTypeEntity, "The data type entity cannot be null.");
            Assert.AreEqual(StatusEnumeration.doesnotexist, dataTypeEntity.status, "The data type entity status must be 'does not exist'.");
            Assert.IsNull(dataTypeEntity.Value, "The data type entity value must be null.");
            // User Type Entity
            var userTypeEntity = collectedMetabaseItem.user_type;

            Assert.IsNotNull(userTypeEntity, "The user type entity cannot be null.");
            Assert.AreEqual(StatusEnumeration.doesnotexist, userTypeEntity.status, "The user type entity status must be 'does not exist'.");
            Assert.IsNull(userTypeEntity.Value, "The user type entity value must be null.");
        }
        public void Should_be_possible_to_generate_items_to_collect_for_a_simple_objectType()
        {
            var result = this.DefaultUserSidItemTypeGenerator.GetItemsToCollect(UserSidObject1080, null);

            ItemTypeChecker.DoBasicAssertForItems(result, 1, typeof(user_sid_item), StatusEnumeration.notcollected);
            ItemTypeEntityChecker.AssertItemTypeEntity(((user_sid_item)result.Single()).user_sid, "S-1-15-18", "user_sid");
        }
Ejemplo n.º 3
0
        public void Should_be_possible_to_generate_items_to_collect_from_an_object_with_referenced_variable_and_pattern_match_operation_at_same_time()
        {
            #region
            //<textfilecontent54_object id="oval:modulo:obj:991">
            //    <path var_ref="oval:modulo:var:911" />
            //    <filename operation="pattern match">.*.ini</filename>
            //    <pattern>3gp</pattern>
            //    <instance datatype="int">2</instance>
            //</textfilecontent54_object>
            #endregion
            var fakeFileLines          = new string[] { "3gp=MPEGVideo" };
            var fakeFilepaths          = new string[] { @"c:\windows\boot.ini", @"c:\windows\file.txt", @"c:\windows\win.ini" };
            var sourceObjectType       = (textfilecontent54_object)ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple", "991");
            var fakeEvaluatedVariables = CreateFakeEvaluateVariablesForAllEntities(sourceObjectType.id);
            var itemTypeGenerator      = CreateItemTypeGeneratorWithMockedBehavior(fakeFileLines, true, fakeFilepaths);
            var expectedPaths          = new String[]
            {
                @"c:\windows\boot.ini",
                @"c:\windows\win.ini",
                @"c:\windows NT\boot.ini",
                @"c:\windows NT\win.ini"
            };


            var result = itemTypeGenerator.GetItemsToCollect(sourceObjectType, fakeEvaluatedVariables).ToArray();


            ItemTypeChecker.DoBasicAssertForItems(result, 4, typeof(textfilecontent_item));
            AssertGeneratedTextFileContentItem(result.ElementAt(0), expectedPaths.ElementAt(0), "3gp", "2");
            AssertGeneratedTextFileContentItem(result.ElementAt(1), expectedPaths.ElementAt(1), "3gp", "2");
            AssertGeneratedTextFileContentItem(result.ElementAt(2), expectedPaths.ElementAt(2), "3gp", "2");
            AssertGeneratedTextFileContentItem(result.ElementAt(3), expectedPaths.ElementAt(3), "3gp", "2");
        }
        public void Should_be_to_generate_environmentvariable_items_from_an_simple_object()
        {
            var fakeOvalObject = ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple.xml", "2360");
            var itemsToCollect = new EnvironmentVariableItemTypeGenerator().GetItemsToCollect(fakeOvalObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(environmentvariable_item));
            Assert.AreEqual("PATH", ((environmentvariable_item)itemsToCollect.Single()).name.Value);
        }
        public void Should_be_possible_to_generate_version55_items_to_collect()
        {
            var itemTypeGenerator = new VersionItemTypeGenerator();

            var itemsToCollect = itemTypeGenerator.GetItemsToCollect(null, null);

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(version_item));
        }
Ejemplo n.º 6
0
        private void AssertGeneratedWmiItem(ItemType[] itemToAssert, string expectedNamespace, string expectedWql)
        {
            ItemTypeChecker.DoBasicAssertForItems(itemToAssert, 1, typeof(wmi_item));
            var wmiItemToAssert = (wmi_item)itemToAssert.Single();

            ItemTypeEntityChecker.AssertItemTypeEntity(wmiItemToAssert.@namespace, expectedNamespace);
            ItemTypeEntityChecker.AssertItemTypeEntity(wmiItemToAssert.wql, expectedWql);
        }
Ejemplo n.º 7
0
        public void Should_be_possible_to_generate_rpminfo_items_to_collect()
        {
            var rpmInfoObject = ProbeHelper.GetDefinitionObjectTypeByID(DEFINITIONS_LINUX, RPMINFO_OBJECT_ID_1);

            var generatedItems = new RPMInfoItemTypeGenerator().GetItemsToCollect(rpmInfoObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(rpminfo_item));
            AssertEntityItems(generatedItems, new string[] { "firefox" });
        }
Ejemplo n.º 8
0
        public void Should_be_possible_to_generate_items_to_collect_from_a_user_object()
        {
            var fakeObject = new UserObjectFactory().NewObject("Guest");

            var itemsToCollect = new UserItemTypeGenerator(null).GetItemsToCollect(fakeObject, null);

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(user_item), StatusEnumeration.notcollected);
            ItemTypeEntityChecker.AssertItemTypeEntity(itemsToCollect.OfType <user_item>().Single().user, "Guest");
        }
Ejemplo n.º 9
0
        public void Should_be_possible_to_handle_accounts_with_null_disabled_property()
        {
            var fakeUseObject     = new UserObjectFactory().NewObject(".*", OperationEnumeration.patternmatch);
            var itemTypeGenerator = CreateItemTypeGeneratorForPatternMatchOperation(true);

            var itemsToCollect = itemTypeGenerator.GetItemsToCollect(fakeUseObject, null);

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 3, typeof(user_item));
        }
Ejemplo n.º 10
0
        public void Should_be_possible_to_generate_items_to_collect_from_an_object_with_GreaterThanOrEqual_operation_in_instance_entity()
        {
            var sourceObjectType  = (textfilecontent54_object)ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple", "995");
            var fakeFileLines     = new String[] { "Linha1\r\nLinha2\r\nLinha3\r\nLinha4\r\nLinha5\r\n" };
            var itemTypeGenerator = CreateItemTypeGeneratorWithMockedBehavior(fakeFileLines, false);

            var result = itemTypeGenerator.GetItemsToCollect(sourceObjectType, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(result, 1, typeof(textfilecontent_item));
        }
Ejemplo n.º 11
0
        public void Should_be_possible_to_generate_items_to_collect_from_a_sql_object()
        {
            var fakeObject = ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple", "5000");

            var itemsToCollect = new SqlItemTypeGenerator().GetItemsToCollect(fakeObject, VariableHelper.CreateEmptyEvaluatedVariables());

            Assert.IsNotNull(itemsToCollect);
            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect.ToArray(), 1, typeof(sql_item));
            AssertSqlItem((sql_item)itemsToCollect.Single());
        }
        public void Should_be_possible_to_generate_textfilecontent_items_to_collect_on_unix_systems()
        {
            var fakeObject            = ProbeHelper.GetDefinitionObjectTypeByID("definitions_all_unix", "oval:modulo:obj:20");
            var fakeItemTypeGenerator = CreateMockedItemTypeGenerator();

            var itemsToCollect = fakeItemTypeGenerator.GetItemsToCollect(fakeObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(textfilecontent_item));
            AssertTextFileContentItem((textfilecontent_item)itemsToCollect.Single());
        }
        public void Should_be_possible_to_generate_items_to_collect_for_a_objectType_with_referenced_variable()
        {
            var fakeEvaluatedVariables =
                VariableHelper.CreateVariableWithOneValue(UserSidObject1090.id, "oval:modulo:var:201", "S-1-1");

            var result = DefaultUserSidItemTypeGenerator.GetItemsToCollect(UserSidObject1090, fakeEvaluatedVariables);

            ItemTypeChecker.DoBasicAssertForItems(result, 1, typeof(user_sid_item), StatusEnumeration.notcollected);
            ItemTypeEntityChecker.AssertItemTypeEntity(((user_sid_item)result.Single()).user_sid, "S-1-1", "user_sid");
        }
        public void Should_be_possible_to_generate_environmentvariable_items_fron_an_object_with_referenced_variable()
        {
            var fakeOvalObject = ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple.xml", "2370");
            var fakeVariables  = VariableHelper.CreateVariableWithOneValue("2370", "2370", "CWD");

            var itemsToCollect = new EnvironmentVariableItemTypeGenerator().GetItemsToCollect(fakeOvalObject, fakeVariables).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(environmentvariable_item));
            Assert.AreEqual("CWD", ((environmentvariable_item)itemsToCollect.Single()).name.Value);
        }
Ejemplo n.º 15
0
        public void The_result_of_item_type_generation_should_contains_only_file_that_exists_on_target()
        {
            // <path operation="pattern match">/lib/modules/.*/kernel/drivers/usb/storage</path>
            var fileObject            = ProbeHelper.GetDefinitionObjectTypeByID("definitions_all_unix", "oval:gov.irs.rhel5:obj:33");
            var fileItemTypeGenerator = CreateFileItemTypeGeneratorWithMockedBehaviorToProcessPatternMatchOperation(false);

            var itemsToCollect = fileItemTypeGenerator.GetItemsToCollect(fileObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, TypeOfUnixFileItem);
        }
        public void Should_be_possible_to_generate_items_to_collect_from_a_fileeffetiverights_object_defined_with_path_and_filename_entities()
        {
            var fileEffectiveRightsObject = this.ObjectFactory.CreateFileEffectiveRightsObject(@"c:\windows", @"win.ini", "S-1-1", false);

            var generatedItems = ItemTypeGenerator.GetItemsToCollect(fileEffectiveRightsObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(fileeffectiverights_item), StatusEnumeration.notcollected);
            var itemToAssert = (fileeffectiverights_item)generatedItems.Single();

            AssertGeneratedItem(itemToAssert, @"c:\windows\win.ini", @"c:\windows", @"win.ini", @"S-1-1");
        }
Ejemplo n.º 17
0
        public void The_Object_Collector_must_be_capable_to_handle_a_user_item_already_collected()
        {
            var fakeUserItem = CreateUserItem(StatusEnumeration.exists);

            var collectedItems = new UserObjectCollector(null).CollectDataForSystemItem(fakeUserItem);

            ItemTypeChecker.DoBasicAssertForCollectedItems(collectedItems, 1, typeof(user_item));
            var collectedUserItem = (user_item)collectedItems.First().ItemType;

            AssertCollectedUserItemEntities(collectedUserItem, EVERYONE_USER, "1", new string[] { "g1" });
        }
Ejemplo n.º 18
0
        public void Should_be_possible_to_apply_not_equal_operation_on_name_entity()
        {
            var rpmInfoObject = ProbeHelper.GetDefinitionObjectTypeByID(DEFINITIONS_LINUX, RPMINFO_OBJECT_ID_13);

            var generatedItems =
                CreateMockedItemTypeGenerator()
                .GetItemsToCollect(rpmInfoObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 4, typeof(rpminfo_item));
            AssertEntityItems(generatedItems, new string[] { "ORBit2", "rpm-libs", "libspectre", "cdrdao" });
        }
Ejemplo n.º 19
0
        public void Should_be_possible_to_generate_items_to_collect_from_a_user_object_with_variable_reference()
        {
            var variableID    = "oval:org.modsic:var:1";
            var fakeObject    = new UserObjectFactory().NewObjectWithVariable(variableID);
            var fakeVariables = VariableHelper.CreateVariableWithOneValue(fakeObject.id, variableID, "Everyone");

            var itemsToCollect = new UserItemTypeGenerator(null).GetItemsToCollect(fakeObject, fakeVariables);

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(user_item), StatusEnumeration.notcollected);
            ItemTypeEntityChecker.AssertItemTypeEntity(itemsToCollect.OfType <user_item>().Single().user, "Everyone");
        }
        public void Should_be_possible_to_generate_textfilecontent_items_to_collect_on_unix_systems_from_an_object_definied_with_path_and_filename_entities_and_referenced_variables()
        {
            var fakeObject            = ProbeHelper.GetDefinitionObjectTypeByID("definitions_all_unix", "oval:modulo:obj:23");
            var fakeVariables         = CreateFakeVariables(fakeObject.id);
            var fakeItemTypeGenerator = CreateMockedItemTypeGenerator();

            var itemsToCollect = fakeItemTypeGenerator.GetItemsToCollect(fakeObject, fakeVariables).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(textfilecontent_item));
            AssertTextFileContentItem((textfilecontent_item)itemsToCollect.Single());
        }
Ejemplo n.º 21
0
        public void Should_be_possible_to_generate_items_to_collect_for_a_simple_process_object()
        {
            var itemTypeGenerator = CreateItemTypeGeneratorWithBehavior();

            var itemsToCollect = itemTypeGenerator.GetItemsToCollect(GetOvalObjectByID("oval:modulo:obj:6"), null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(itemsToCollect, 1, typeof(process_item));
            var processItem = (process_item)itemsToCollect.First();

            AssertProcessItem(processItem, "named", "23");
        }
Ejemplo n.º 22
0
        public void Should_be_possible_to_generate_items_to_collect_from_an_object_with_pattern_match_operation_in_pattern_entity()
        {
            var fakeObjectType    = ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple", "993");
            var itemTypeGenerator =
                CreateItemTypeGeneratorWithMockedBehavior(new string[] { "3gp=MPEGVideo" }, false, null);

            var generatedItems = itemTypeGenerator.GetItemsToCollect(fakeObjectType, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(textfilecontent_item));
            AssertGeneratedTextFileContentItem(generatedItems.Single(), @"c:\windows\win.ini", "^3gp.*", "1");
        }
Ejemplo n.º 23
0
        public void Should_be_possible_to_generate_runlevel_items_to_collect()
        {
            var runlevelObject = ProbeHelper.GetDefinitionObjectTypeByID("definitions_all_unix", "1");

            var generatedItems = new RunLevelItemTypeGenerator().GetItemsToCollect(runlevelObject, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(runlevel_item));
            var runLevelItemToAssert = (runlevel_item)generatedItems.Single();

            AssertRunlevelItem(runLevelItemToAssert, "ssh", "1");
        }
Ejemplo n.º 24
0
        public void Should_be_possible_to_process_variables_for_line_object()
        {
            var fakeVariables  = VariableHelper.CreateVariableWithOneValue("oval:modsic.tests:obj:1", "oval:modsic.tests:var:1", "show snmp");
            var fakeLineObject = this.CreateLineObjectWithVariable();

            var generatedItems = new LineItemTypeGenerator().GetItemsToCollect(fakeLineObject, fakeVariables);

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(line_item));
            var lineItem = generatedItems.OfType <line_item>().Single();

            ItemTypeEntityChecker.AssertItemTypeEntity(lineItem.show_subcommand, "show snmp", "show_subcommand");
        }
        public void Should_be_possible_to_generate_items_to_collect_from_a_fileeffetiverights_object_with_pattern_match_on_trusteeSid_entity()
        {
            var objectSample        = GetFilEffectiveRightsObjectWithPatternMatchOnTrusteeSid(".*");
            var mockObjectCollector = CreateObjectCollectorToGetAllTargetUsers(".*", OperationEnumeration.patternmatch);
            var itemTypeGenerator   = new FileEffectiveRights53ItemTypeGenerator(null, mockObjectCollector);

            var generatedItems = itemTypeGenerator.GetItemsToCollect(objectSample, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 2, typeof(fileeffectiverights_item));
            Assert.AreEqual("1", generatedItems.ElementAt(0).id);
            Assert.AreEqual("2", generatedItems.ElementAt(1).id);
        }
Ejemplo n.º 26
0
        public void Should_be_possible_to_generate_line_item()
        {
            var fakeLineObject    = CreateLineObject();
            var itemTypeGenerator = new LineItemTypeGenerator();

            var generatedItems = itemTypeGenerator.GetItemsToCollect(fakeLineObject, null);

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(line_item));
            var lineItem = generatedItems.OfType <line_item>().Single();

            ItemTypeEntityChecker.AssertItemTypeEntity(lineItem.show_subcommand, "show running-config", "show_subcommand");
        }
Ejemplo n.º 27
0
        public void If_an_error_occurs_an_item_if_error_status_and_error_message_must_be_returned()
        {
            var fakeWmiItem         = this.CreateWmiItem(FAKE_NAMESPACE, FAKE_WQL_OS);
            var fakeWmiResult       = this.CreateFakeWmiObjectList("caption", new string[] { "Windows 8" });
            var fakeException       = new Exception("Test Exception was thrown");
            var wmiSystemDataSource = this.GetMockedWmiSystemDataSource(null, fakeException);

            var result = wmiSystemDataSource.CollectDataForSystemItem(fakeWmiItem).ToArray();

            ItemTypeChecker.DoBasicAssertForCollectedItems(result, 1, typeof(wmi_item), false);
            ItemTypeChecker.AssertItemTypeWithErrorStatus(result.Single().ItemType, "[WMIObjectCollector]");
        }
Ejemplo n.º 28
0
        public void A_wmi_item_with_error_status_must_be_returned_if_an_item_with_error_was_passed()
        {
            var fakeWmiItemWithError = new wmi_item()
            {
                status = StatusEnumeration.error
            };

            var result = new WMIObjectCollector(null).CollectDataForSystemItem(fakeWmiItemWithError).ToArray();

            ItemTypeChecker.DoBasicAssertForCollectedItems(result, 1, typeof(wmi_item), false);
            ItemTypeChecker.AssertItemTypeWithErrorStatus(result.Single().ItemType, null);
        }
        public void Should_be_possible_to_generate_items_from_an_textfilecontent54_object_with_GreaterThanOrEqual_operation()
        {
            var objectSample      = ProbeHelper.GetDefinitionObjectTypeByID("definitionsSimple", "oval:gov.irs.sol10:obj:86");
            var itemTypeGenerator = CreateMockedItemTypeGenerator();

            var generatedItems = itemTypeGenerator.GetItemsToCollect(objectSample, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(textfilecontent_item));
            var textFileContentItem = (textfilecontent_item)generatedItems.Single();

            Assert.AreEqual("noflags:lo", textFileContentItem.text.Value);
        }
Ejemplo n.º 30
0
        public void Should_be_possible_to_collect_a_user_item_did_not_collected_yet()
        {
            var fakeUserItem    = CreateUserItem(StatusEnumeration.notcollected);
            var objectCollector = CreateUserObjectCollectorMock();

            var collectedItems = objectCollector.CollectDataForSystemItem(fakeUserItem);

            ItemTypeChecker.DoBasicAssertForCollectedItems(collectedItems, 1, typeof(user_item), true);
            var collectedUserItem = (user_item)collectedItems.Single().ItemType;

            AssertCollectedUserItemEntities(collectedUserItem, EVERYONE_USER, "1", new string[] { "Fake Group 1", "Fake Group 2" });
        }