public void DeclarationFinderCanCopeWithMultipleModulesImplementingTheSameInterface() { var project = GetTestProject("testProject"); var interf = GetTestClassModule(project, "interface"); var member = GetTestFunction(interf, "testMember", Accessibility.Public); var implementingClass1 = GetTestClassModule(project, "implementingClass1"); var implementingClass2 = GetTestClassModule(project, "implementingClass2"); var implementsContext1 = new VBAParser.ImplementsStmtContext(null, 0); var implementsContext2 = new VBAParser.ImplementsStmtContext(null, 0); AddReference(interf, implementingClass1, implementsContext1); AddReference(interf, implementingClass1, implementsContext2); var declarations = new List <Declaration> { interf, member, implementingClass1, implementingClass2 }; DeclarationFinder finder = new DeclarationFinder(declarations, new List <Rubberduck.Parsing.Annotations.IAnnotation>(), new List <UnboundMemberDeclaration>()); var interfaceDeclarations = finder.FindAllInterfaceMembers().ToList(); Assert.AreEqual(1, interfaceDeclarations.Count()); }