public void FullDependenciesWithIncrementalAnalysis() { MockTypeLib mainTypeLib1, mainTypeLib2, mainTypeLib3, dependencyTypeLib1, dependencyTypeLib2, dependencyTypeLib3; CreateTwoTypeLibs(out mainTypeLib1, out dependencyTypeLib1); CreateTwoTypeLibs(out mainTypeLib2, out dependencyTypeLib2); CreateTwoTypeLibs(out mainTypeLib3, out dependencyTypeLib3); mainTypeLib1.ContainedTypeInfos[0].DefinesVariable(dependencyTypeLib1.ContainedTypeInfos[0]); mainTypeLib2.ContainedTypeInfos[0].DefinesVariable(dependencyTypeLib1.ContainedTypeInfos[0]); mainTypeLib2.ContainedTypeInfos[0].DefinesVariable(dependencyTypeLib2.ContainedTypeInfos[0]); mainTypeLib3.ContainedTypeInfos[0].DefinesVariable(dependencyTypeLib1.ContainedTypeInfos[0]); mainTypeLib3.ContainedTypeInfos[0].DefinesVariable(dependencyTypeLib3.ContainedTypeInfos[0]); ComDependencyWalker walker = new ComDependencyWalker(MockReleaseComObject); walker.AnalyzeTypeLibrary(mainTypeLib1); TYPELIBATTR[] dependencies = walker.GetDependencies(); ICollection<string> analyzedTypes = walker.GetAnalyzedTypeNames(); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib1, true); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib2, false); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib3, false); Assert.Equal(2, analyzedTypes.Count); walker.ClearDependencyList(); walker.AnalyzeTypeLibrary(mainTypeLib2); dependencies = walker.GetDependencies(); analyzedTypes = walker.GetAnalyzedTypeNames(); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib1, true); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib2, true); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib3, false); Assert.Equal(4, analyzedTypes.Count); walker.ClearDependencyList(); walker.AnalyzeTypeLibrary(mainTypeLib3); dependencies = walker.GetDependencies(); analyzedTypes = walker.GetAnalyzedTypeNames(); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib1, true); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib2, false); AssertDependenciesContainTypeLib(dependencies, dependencyTypeLib3, true); Assert.Equal(6, analyzedTypes.Count); }