public void Should_be_possible_to_generate_items_to_collect_from_a_fileeffetiverights_object_with_path_but_no_filename()
        {
            var objectSample = 
                new FileEffectiveRights53ObjectFactory()
                    .CreateFileEffectiveRightsObject("c:\\windows", null, "S-1-1", false);
            var itemTypeGenerator = new FileEffectiveRights53ItemTypeGenerator(null, null);

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

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 1, typeof(fileeffectiverights_item), StatusEnumeration.notcollected);
            var itemsToAssert = generatedItems.OfType<fileeffectiverights_item>();
            AssertGeneratedItem(itemsToAssert.ElementAt(0), "c:\\windows", "c:\\windows", null, "S-1-1");

        }
        public void Should_be_possible_to_generate_items_to_collect_from_a_fileeffetiverights_object_with_pattern_match_on_path_and_filename_entities()
        {
            var objectSample = GetFileEffectiveRightsObjectWithPatternMatchOnPathAndFilename("c:\\windows\\^system.*", ".*.dll");
            var mockFileProvider = this.CreateWindowsFileProviderMockingDirectoryAndFileSearches();
            var itemTypeGenerator = new FileEffectiveRights53ItemTypeGenerator(mockFileProvider, null);
            
            var generatedItems = itemTypeGenerator.GetItemsToCollect(objectSample, null).ToArray();

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 4, typeof(fileeffectiverights_item), StatusEnumeration.notcollected);
            var itemsToAssert = generatedItems.OfType<fileeffectiverights_item>();
            AssertGeneratedItem(itemsToAssert.ElementAt(0), "c:\\windows\\system\\b.dll", "c:\\windows\\system", "b.dll", "S-1-1");
            AssertGeneratedItem(itemsToAssert.ElementAt(1), "c:\\windows\\system\\c.dll", "c:\\windows\\system", "c.dll", "S-1-1");
            AssertGeneratedItem(itemsToAssert.ElementAt(2), "c:\\windows\\system32\\b.dll", "c:\\windows\\system32", "b.dll", "S-1-1");
            AssertGeneratedItem(itemsToAssert.ElementAt(3), "c:\\windows\\system32\\c.dll", "c:\\windows\\system32", "c.dll", "S-1-1");
        }
        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);
        }
        public void Should_be_possible_to_generate_items_to_collect_from_a_fileeffetiverights_object_with_pattern_match_on_filepath_entity()
        {
            var objectSample = GetFileEffectiveRightsObjectWithPatternMatchOnFilepath("c:\\^windows.*\\odbc.ini");
            var mockFileProvider = this.CreateWindowsFileProviderMockingDirectorySearch();
            var itemTypeGenerator = new FileEffectiveRights53ItemTypeGenerator(mockFileProvider, null);

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

            ItemTypeChecker.DoBasicAssertForItems(generatedItems, 2, typeof(fileeffectiverights_item), StatusEnumeration.notcollected);
            var itemsToAssert = generatedItems.OfType<fileeffectiverights_item>();
            AssertGeneratedItem(itemsToAssert.ElementAt(0), "c:\\windows\\odbc.ini", "c:\\windows", "odbc.ini", "S-1-1");
            AssertGeneratedItem(itemsToAssert.ElementAt(1), "c:\\windows NT\\odbc.ini", "c:\\windows NT", "odbc.ini", "S-1-1");
        }