Beispiel #1
0
 private void ConfigureObjectCollectorInOrderToKeepTheNormalFlow(
     BaseObjectCollector fakeObjectCollector)
 {
     Expect.Call(fakeObjectCollector.CollectDataForSystemItem(null))
     .IgnoreArguments()
     .CallOriginalMethod(OriginalCallOptions.NoExpectation);
 }
        public void Should_be_possible_to_generate_itemTypes_from_objectTypes_with_variables()
        {
            string hiveHKLM   = eHiveNames.HKEY_LOCAL_MACHINE.ToString();
            string key        = @"Software\Microsoft\Windows NT\CurrentVersion";
            string name       = "CurrentType";
            var    ovalObject = WindowsTestHelper.GetObjectFromDefinitions("definitionsWithLocalVariable.xml", "oval:org.mitre.oval:obj:4000");
            BaseObjectCollector fakeDataSource  = WindowsTestHelper.GetDataSourceFakewithoutRegex();
            WmiDataProvider     wmiDataProvider = new WmiDataProviderExpectFactory().GetFakeWmiDataProviderForTestInvokeMethodEnumKeyWithReturnSuccess();

            VariableValue variable = new VariableValue(ovalObject.id, "oval:org.mitre.oval:var:4000", new List <string>()
            {
                key
            });
            VariablesEvaluated variables = new VariablesEvaluated(new List <VariableValue>()
            {
                variable
            });

            var itemGenerator = new RegistryItemTypeGenerator()
            {
                SystemDataSource = fakeDataSource, WmiDataProvider = wmiDataProvider
            };
            var itemsToCollect = itemGenerator.GetItemsToCollect(ovalObject, variables);

            Assert.IsTrue(itemsToCollect.Count() == 1, "the quantity of items is not expected");
            this.AssertGeneratedRegistryItem(itemsToCollect.ElementAt(0), hiveHKLM, key, name);
        }
Beispiel #3
0
 private void CreateExpectationForObjectCollector(
     BaseObjectCollector objectCollector,
     CollectedItem[] fakeCollectedItemsToReturn)
 {
     Expect.Call(objectCollector.CollectDataForSystemItem(null))
     .IgnoreArguments()
     .Return(fakeCollectedItemsToReturn);
 }
Beispiel #4
0
 private void ConfigureProber(
     ProbeBase probeToConfigure,
     IConnectionManager fakeConnectionManager,
     IItemTypeGenerator fakeItemTypeGenerator,
     BaseObjectCollector fakeObjectCollector)
 {
     probeToConfigure.ConnectionManager = fakeConnectionManager;
     probeToConfigure.ItemTypeGenerator = fakeItemTypeGenerator;
     probeToConfigure.ObjectCollector   = fakeObjectCollector;
 }
        public BaseObjectCollector GetDataSourceFakeyWithNotFoundKeys()
        {
            IList <String> fakeFoundKeys = null;

            MockRepository      mocks          = new MockRepository();
            BaseObjectCollector fakeDataSource = mocks.DynamicMock <BaseObjectCollector>();

            Expect.Call(fakeDataSource.GetValues(new Dictionary <string, object>())).IgnoreArguments().Return(fakeFoundKeys);
            mocks.ReplayAll();

            return(fakeDataSource);
        }
Beispiel #6
0
        private void CreateObjectCollector()
        {
            if (base.ObjectCollector == null)
            {
                base.ObjectCollector = new FileContentSystemDataSource(TargetInfo.GetAddress());

                var wmiConnectionScope =
                    this.FileDataSource = new FileObjectCollector()
                {
                    WmiDataProvider = CreateWmiDataProvider()
                };
            }
        }
Beispiel #7
0
        protected override void ConfigureObjectCollector()
        {
            if (base.ObjectCollector == null)
            {
                var connectionScope    = ((FileConnectionProvider)FileConnectionProvider).ConnectionScope;
                var newWmiDataProvider = new WmiDataProvider(connectionScope);
                var newFileProvider    = new WindowsFileProvider(TargetInfo)
                {
                    WmiDataProvider = newWmiDataProvider
                };

                ObjectCollector = new TextFileContentObjectCollector()
                {
                    FileContentProvider = newFileProvider, TargetInfo = TargetInfo
                };
                FileDataSource = new FileObjectCollector()
                {
                    WmiDataProvider = newWmiDataProvider
                };
            }

            if (base.ItemTypeGenerator == null)
            {
                var newFileProvider =
                    new WindowsFileProvider(this.TargetInfo)
                {
                    WmiDataProvider =
                        WmiDataProviderFactory
                        .CreateWmiDataProviderForFileSearching(this.TargetInfo)
                };

                var newOperationEvaluator =
                    new TextFileContentEntityOperationEvaluator(ObjectCollector, newFileProvider, FamilyEnumeration.windows);

                ItemTypeGenerator = new TextFileContentItemTypeGenerator()
                {
                    OperationEvaluator = newOperationEvaluator
                };
            }
        }
        public void Should_be_possible_to_generate_itemTypes_from_objectTypes_with_regex_operation()
        {
            string hiveHKLM = eHiveNames.HKEY_LOCAL_MACHINE.ToString();
            string startKey = "SOFTWARE\\Microsoft\\Windows";
            var    obj50003 = WindowsTestHelper.GetObjectFromDefinitions(DEFINITIONS_REGEX_ON_VALUE, OBJ_50003_ID);


            BaseObjectCollector fakeDataSource  = WindowsTestHelper.GetDataSourceFakeWithRegex(startKey, 2);
            WmiDataProvider     wmiDataProvider = new WmiDataProviderExpectFactory().GetFakeWmiDataProviderForTestInvokeMethodEnumKeyWithReturnSuccess();

            RegistryItemTypeGenerator itemGenerator = new RegistryItemTypeGenerator()
            {
                SystemDataSource = fakeDataSource, WmiDataProvider = wmiDataProvider
            };
            var itemsToCollect = itemGenerator.GetItemsToCollect(obj50003, VariableHelper.CreateEmptyEvaluatedVariables()).Cast <registry_item>();

            Assert.AreEqual(4, itemsToCollect.Count());
            this.AssertGeneratedRegistryItem(itemsToCollect.ElementAt(0), hiveHKLM, "SOFTWARE\\Microsoft\\Windows\\CurrentBuild", "CurrentBuild");
            this.AssertGeneratedRegistryItem(itemsToCollect.ElementAt(1), hiveHKLM, "SOFTWARE\\Microsoft\\Windows\\CurrentBuild", "LastBuild");
            this.AssertGeneratedRegistryItem(itemsToCollect.ElementAt(2), hiveHKLM, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "CurrentBuild");
            this.AssertGeneratedRegistryItem(itemsToCollect.ElementAt(3), hiveHKLM, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "LastBuild");
        }
        /// <summary>
        /// This is a temporary code in order to keep unit tests and oval interpreter prototype compatible.
        /// This method should be replace by dependency injection pattern.
        /// </summary>
        protected override void ConfigureObjectCollector()
        {
            if (base.ObjectCollector == null)
            {
                var newWmiProvider = this.CreateWmiProviderFromProberConnection();
                base.ObjectCollector = new FileEffectiveRightsObjectCollector()
                {
                    WmiDataProvider = newWmiProvider
                };
                this.FileSystemDataSource = new FileObjectCollector()
                {
                    WmiDataProvider = newWmiProvider
                };
            }

            if (base.ItemTypeGenerator == null)
            {
                base.ItemTypeGenerator = new FileEffectiveRightsItemTypeGenerator()
                {
                    SystemDataSource = base.ObjectCollector, FileDataSource = FileSystemDataSource
                }
            }
            ;
        }
 public TextFileContentObjectCollectorTests()
 {
     this.ObjectCollector =
         GetTextFileContentObjectCollectorWithMockBehavior(
             new string[] { "Line 1", "Line 2", "Line 3", "Line N", "" });
 }
Beispiel #11
0
 public FileContentEntityOperationEvaluator(BaseObjectCollector systemDataSource, IFileProvider fileProvider)
 {
     this.systemDataSource = systemDataSource;
     pathOperatorEvaluator = new PathOperatorEvaluator(fileProvider, FamilyEnumeration.windows);
 }
 public FileEffectiveRightsOperationEvaluator(BaseObjectCollector sytemDataSource, IFileProvider fileProvider)
 {
     this.systemDataSource      = sytemDataSource;
     this.pathOperatorEvaluator = new PathOperatorEvaluator(fileProvider, FamilyEnumeration.windows);
 }
 public RegistryEntityOperationEvaluator(BaseObjectCollector systemDataSource, WmiDataProvider wmiDataProvider)
 {
     this.systemDataSource = systemDataSource;
     this.wmiDataProvider  = wmiDataProvider;
 }
 public TextFileContentEntityOperationEvaluator(BaseObjectCollector systemDataSource, IFileProvider fileDataSource, FamilyEnumeration platform)
 {
     this.TextFileContentDataSource = systemDataSource;
     this.PathOperatorEvaluator     = new PathOperatorEvaluator(fileDataSource, platform);
 }