예제 #1
0
        public void GetReverseReferences()
        {
            _assemblyDefinition1.MainModule.AssemblyReferences.Add(_assemblyDefinition2.Name);
            AssemblyTracker tracker = new AssemblyTracker(new[] { _assemblyDefinition1, _assemblyDefinition2 }, new TypeDefinitionCache());

            var reverseReferences = tracker.GetReverseReferences(_assemblyDefinition2);

            Assert.That(reverseReferences, Is.EquivalentTo(new [] { _assemblyDefinition1 }));
        }
예제 #2
0
        public void GetReverseReferences_MultiModuleAssembly()
        {
            ModuleDefinition module = ModuleDefinition.CreateModule("Module1", ModuleKind.NetModule);

            module.AssemblyReferences.Add(_assemblyDefinition2.Name);
            _assemblyDefinition1.Modules.Add(module);

            AssemblyTracker tracker = new AssemblyTracker(new[] { _assemblyDefinition1, _assemblyDefinition2 }, new TypeDefinitionCache());

            var reverseReferences = tracker.GetReverseReferences(_assemblyDefinition2);

            Assert.That(reverseReferences, Is.EquivalentTo(new[] { _assemblyDefinition1 }));
        }
예제 #3
0
        public void GetReverseReferences_NotTracked()
        {
            AssemblyTracker tracker = new AssemblyTracker(new AssemblyDefinition[0], new TypeDefinitionCache());

            Assert.Throws <ArgumentException> (() => tracker.GetReverseReferences(_assemblyDefinition1));
        }