Lines 793-796
Link Here
|
793 |
deleteProject("P2"); |
793 |
deleteProject("P2"); |
794 |
} |
794 |
} |
795 |
} |
795 |
} |
|
|
796 |
|
797 |
/** |
798 |
* @bug 163072: [search] method reference reports wrong potential matches |
799 |
* @test Ensure that there's no potential match while searching in two projects having 1.4 and 1.5 compliances |
800 |
* @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=163072" |
801 |
*/ |
802 |
public void testONLY_Bug163072() throws CoreException { |
803 |
try { |
804 |
// setup project P1 |
805 |
/*IJavaProject p1 = */createJavaProject("P1"); // standard project using 1.4 compliance |
806 |
createFolder("/P1/test"); |
807 |
createFile( |
808 |
"/P1/test/Test.java", |
809 |
"package test;\n" + |
810 |
"public class Test {\n" + |
811 |
" public Object getType() {\n" + |
812 |
" return null;\n" + |
813 |
" }\n" + |
814 |
" public void foo() {\n" + |
815 |
" if (getType() == null) {\n" + |
816 |
" System.out.println(\"null\");\n" + |
817 |
" }\n" + |
818 |
" }\n" + |
819 |
"}\n" |
820 |
); |
821 |
|
822 |
// setup project P2 |
823 |
createJavaProject("P2", new String[] {""}, new String[] {"JCL15_LIB"}, new String[] { "/P1" }, "", "1.5"); |
824 |
createFolder("/P2/pack"); |
825 |
createFile( |
826 |
"/P2/pack/FactoryContainer.java", |
827 |
"package pack;\n" + |
828 |
"public class FactoryContainer {\n" + |
829 |
" public enum FactoryType { PLUGIN }\n" + |
830 |
" public FactoryType getType() {\n" + |
831 |
" return FactoryType.PLUGIN;\n" + |
832 |
" }\n" + |
833 |
"}\n" |
834 |
); |
835 |
createFile( |
836 |
"/P2/pack/Reference.java", |
837 |
"package pack;\n" + |
838 |
"public class Reference {\n" + |
839 |
" private final FactoryContainer _fc;\n" + |
840 |
" public Reference() {\n" + |
841 |
" _fc = new FactoryContainer();\n" + |
842 |
" }\n" + |
843 |
" boolean foo() {\n" + |
844 |
" return _fc.getType() == FactoryContainer.FactoryType.PLUGIN;\n" + |
845 |
" }\n" + |
846 |
"}\n" |
847 |
); |
848 |
|
849 |
// Get method |
850 |
IMethod method = getCompilationUnit("/P1/test/Test.java").getType("Test").getMethod("getType", new String[0]); |
851 |
assertTrue("Method 'Test.getType()' should exist!", method.exists()); |
852 |
|
853 |
// search method declaration in workspace scope |
854 |
IJavaSearchScope scope = SearchEngine.createWorkspaceScope(); //JavaSearchScope(new IJavaElement[] {p1, p2}); |
855 |
JavaSearchResultCollector resultCollector = new JavaSearchResultCollector(); |
856 |
resultCollector.showProject = true; |
857 |
resultCollector.showAccuracy = true; |
858 |
search(method, REFERENCES, scope, resultCollector); |
859 |
assertSearchResults( |
860 |
"Unexpected references of method Test.getType()", |
861 |
"test/Test.java [in P1] void test.Test.foo() [getType()] EXACT_MATCH", |
862 |
resultCollector); |
863 |
} finally { |
864 |
deleteProject("P1"); |
865 |
deleteProject("P2"); |
866 |
} |
867 |
} |
796 |
} |
868 |
} |