diff --git a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.java b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.java index f170653a3e9..ea31a0f59fe 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.java +++ b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.java @@ -478,7 +478,8 @@ public class GenerateTests { "idea/tests/", "JetFindUsagesTest", AbstractJetFindUsagesTest.class, - testModelWithPattern("idea/testData/findUsages", "^(.+)\\.0\\.kt$", "doTest") + testModelWithPattern("idea/testData/findUsages/kotlin", "^(.+)\\.0\\.kt$", "doTest"), + testModelWithPattern("idea/testData/findUsages/java", "^(.+)\\.0\\.java$", "doTest") ); generateTest( diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.0.java new file mode 100644 index 00000000000..451c43618b9 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.0.java @@ -0,0 +1,14 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: usages +public class A { + public String bar = "bar"; + public static String BAR = "BAR"; + + public void foo() { + + } + + public static void foos() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.1.kt new file mode 100644 index 00000000000..923a2c2112e --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.1.kt @@ -0,0 +1,38 @@ +public class X(bar: String? = A.BAR): A() { + var next: A? = A() + val myBar: String? = A.BAR + + { + A.BAR = "" + A.foos() + } + + fun foo(a: A) { + val aa: A = a + aa.bar = "" + } + + fun getNext(): A? { + return next + } + + public override fun foo() { + super.foo() + } + + class object: A() { + + } +} + +object O: A() { + +} + +fun X.bar(a: A = A()) { + +} + +fun Any.toA(): A? { + return if (this is A) this as A else null +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.results.txt new file mode 100644 index 00000000000..23270c2c3e8 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.results.txt @@ -0,0 +1,18 @@ +Class/object property type (2: 15) var next: A? = A() +Function return types (15: 20) fun getNext(): A? { +Function return types (36: 16) fun Any.toA(): A? { +Instantiation (2: 20) var next: A? = A() +Instantiation (32: 18) fun X.bar(a: A = A()) { +Local variable type (11: 17) val aa: A = a +Parameter type (10: 16) fun foo(a: A) { +Parameter type (32: 14) fun X.bar(a: A = A()) { +Super type qualifier (20: 15) super.foo() +Supertype (1: 39) public class X(bar: String? = A.BAR): A() { +Supertype (23: 19) class object: A() { +Supertype (28: 11) object O: A() { +Target type of 'as' operation (37: 35) return if (this is A) this as A else null +Target type of 'is' operation (37: 24) return if (this is A) this as A else null +Unclassified usage (1: 31) public class X(bar: String? = A.BAR): A() { +Unclassified usage (3: 26) val myBar: String? = A.BAR +Unclassified usage (6: 9) A.BAR = "" +Unclassified usage (7: 9) A.foos() diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.0.java new file mode 100644 index 00000000000..6b4cd578b89 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.0.java @@ -0,0 +1,14 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: fieldUsages +public class A { + public String bar = "bar"; + public static String BAR = "BAR"; + + public void foo() { + + } + + public static void foos() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.1.kt new file mode 100644 index 00000000000..923a2c2112e --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.1.kt @@ -0,0 +1,38 @@ +public class X(bar: String? = A.BAR): A() { + var next: A? = A() + val myBar: String? = A.BAR + + { + A.BAR = "" + A.foos() + } + + fun foo(a: A) { + val aa: A = a + aa.bar = "" + } + + fun getNext(): A? { + return next + } + + public override fun foo() { + super.foo() + } + + class object: A() { + + } +} + +object O: A() { + +} + +fun X.bar(a: A = A()) { + +} + +fun Any.toA(): A? { + return if (this is A) this as A else null +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.results.txt new file mode 100644 index 00000000000..c242079ec27 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.results.txt @@ -0,0 +1,4 @@ +Value read (1: 33) public class X(bar: String? = A.BAR): A() { +Value read (3: 28) val myBar: String? = A.BAR +Value write (12: 12) aa.bar = "" +Value write (6: 11) A.BAR = "" diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.0.java new file mode 100644 index 00000000000..9d1466688cb --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.0.java @@ -0,0 +1,14 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: methodUsages +public class A { + public String bar = "bar"; + public static String BAR = "BAR"; + + public void foo() { + + } + + public static void foos() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.1.kt new file mode 100644 index 00000000000..923a2c2112e --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.1.kt @@ -0,0 +1,38 @@ +public class X(bar: String? = A.BAR): A() { + var next: A? = A() + val myBar: String? = A.BAR + + { + A.BAR = "" + A.foos() + } + + fun foo(a: A) { + val aa: A = a + aa.bar = "" + } + + fun getNext(): A? { + return next + } + + public override fun foo() { + super.foo() + } + + class object: A() { + + } +} + +object O: A() { + +} + +fun X.bar(a: A = A()) { + +} + +fun Any.toA(): A? { + return if (this is A) this as A else null +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.results.txt new file mode 100644 index 00000000000..cffa0dedadd --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.results.txt @@ -0,0 +1,2 @@ +Function call (20: 18) super.foo() +Function call (7: 11) A.foos() diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.0.java new file mode 100644 index 00000000000..1b651131d41 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.0.java @@ -0,0 +1,5 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: derivedClasses +public class A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.1.kt new file mode 100644 index 00000000000..f2c78275033 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.1.kt @@ -0,0 +1,7 @@ +public open class X: A() + +public trait T: A + +public open class Y: X() + +public class Z: Y(), T \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.results.txt new file mode 100644 index 00000000000..9c3706e1f87 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.results.txt @@ -0,0 +1,3 @@ +Unclassified usage (1: 19) public open class X: A() +Unclassified usage (5: 19) public open class Y: X() +Unclassified usage (7: 14) public class Z: Y(), T diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.0.java new file mode 100644 index 00000000000..a031139d7c7 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.0.java @@ -0,0 +1,5 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: derivedInterfaces +public interface A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.1.kt new file mode 100644 index 00000000000..ba62e0e2d65 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.1.kt @@ -0,0 +1,7 @@ +public open class X: A + +public trait T: A + +public open class Y: X() + +public class Z: Y(), T \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.results.txt new file mode 100644 index 00000000000..1e3df9c4b34 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.results.txt @@ -0,0 +1 @@ +Unclassified usage (3: 14) public trait T: A diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.0.java b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.0.java new file mode 100644 index 00000000000..2f1ebac5750 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.0.java @@ -0,0 +1,5 @@ +// PSI_ELEMENT: com.intellij.psi.PsiClass +// OPTIONS: implementingClasses +public interface A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.1.kt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.1.kt new file mode 100644 index 00000000000..ba62e0e2d65 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.1.kt @@ -0,0 +1,7 @@ +public open class X: A + +public trait T: A + +public open class Y: X() + +public class Z: Y(), T \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.results.txt b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.results.txt new file mode 100644 index 00000000000..4db6f1d150e --- /dev/null +++ b/idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.results.txt @@ -0,0 +1,4 @@ +Unclassified usage (1: 19) public open class X: A +Unclassified usage (5: 19) public open class Y: X() +Unclassified usage (7: 14) public class Z: Y(), T +Unclassified usage (7: 14) public class Z: Y(), T diff --git a/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java new file mode 100644 index 00000000000..d9a47f7d636 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java @@ -0,0 +1,5 @@ +// PSI_ELEMENT: com.intellij.psi.PsiField +// OPTIONS: readAccess +public class A { + public String foo = "foo"; +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.1.kt b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.1.kt new file mode 100644 index 00000000000..e90ee7e40f7 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.1.kt @@ -0,0 +1,5 @@ +fun test() { + val a = A() + a.foo = "bar" + println(a.foo) +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.results.txt b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.results.txt new file mode 100644 index 00000000000..561ae25c2aa --- /dev/null +++ b/idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.results.txt @@ -0,0 +1,2 @@ +Value read (4: 15) println(a.foo) +Value write (3: 7) a.foo = "bar" diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.0.java b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.0.java new file mode 100644 index 00000000000..bfec0405291 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.0.java @@ -0,0 +1,14 @@ +// PSI_ELEMENT: com.intellij.psi.PsiMethod +// OPTIONS: overrides +public class A { + public void foo() { + + } +} + +public class B extends A { + @Override + public void foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.1.kt b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.1.kt new file mode 100644 index 00000000000..f9eefaedab1 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.1.kt @@ -0,0 +1,17 @@ +public open class X: A() { + public override fun foo() { + + } +} + +public class Y: X() { + public override fun foo() { + + } +} + +public class Z: B() { + public override fun foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.results.txt b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.results.txt new file mode 100644 index 00000000000..6ed8b4a11d5 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.results.txt @@ -0,0 +1,4 @@ +Unclassified usage (11: 17) public void foo() { +Unclassified usage (14: 25) public override fun foo() { +Unclassified usage (2: 25) public override fun foo() { +Unclassified usage (8: 25) public override fun foo() { diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java new file mode 100644 index 00000000000..3a8b6374127 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java @@ -0,0 +1,14 @@ +// PSI_ELEMENT: com.intellij.psi.PsiMethod +// OPTIONS: usages +class A { + public void foo() { + + } +} + +class B extends A { + @Override + public void foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.1.kt b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.1.kt new file mode 100644 index 00000000000..62db51ea43f --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.1.kt @@ -0,0 +1,7 @@ +fun test() { + A().foo() + B().foo() + + val a = A::foo + val b = B::foo +} \ No newline at end of file diff --git a/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.results.txt b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.results.txt new file mode 100644 index 00000000000..92a82ad1516 --- /dev/null +++ b/idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.results.txt @@ -0,0 +1,4 @@ +Callable reference (5: 16) val a = A::foo +Callable reference (6: 16) val b = B::foo +Function call (2: 9) A().foo() +Function call (3: 9) B().foo() diff --git a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java index b408e1b6c02..c6697aebd42 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java @@ -22,16 +22,13 @@ import com.google.common.base.Predicates; import com.google.common.collect.Collections2; import com.google.common.collect.Ordering; import com.intellij.find.FindManager; -import com.intellij.find.findUsages.FindUsagesHandler; -import com.intellij.find.findUsages.FindUsagesOptions; -import com.intellij.find.findUsages.JavaFindUsagesOptions; +import com.intellij.find.findUsages.*; import com.intellij.find.impl.FindManagerImpl; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.psi.PsiComment; -import com.intellij.psi.PsiElement; +import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; @@ -140,6 +137,63 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT return options; } + }, + JAVA_CLASS { + @NotNull + @Override + public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) { + KotlinClassFindUsagesOptions options = new KotlinClassFindUsagesOptions(project); + options.isUsages = false; + options.setSearchConstructorUsages(false); + for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) { + if (parseCommonOptions(options, s)) continue; + + if (s.equals("derivedInterfaces")) { + options.isDerivedInterfaces = true; + } + else if (s.equals("derivedClasses")) { + options.isDerivedClasses = true; + } + else if (s.equals("implementingClasses")) { + options.isImplementingClasses = true; + } + else if (s.equals("methodUsages")) { + options.isMethodsUsages = true; + } + else if (s.equals("fieldUsages")) { + options.isFieldsUsages = true; + } + else fail("Invalid option: " + s); + } + + return options; + } + }, + JAVA_METHOD { + @NotNull + @Override + public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) { + JavaMethodFindUsagesOptions options = new JavaMethodFindUsagesOptions(project); + options.isUsages = false; + for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) { + if (parseCommonOptions(options, s)) continue; + + if (s.equals("overrides")) { + options.isOverridingMethods = true; + options.isImplementingMethods = true; + } + else fail("Invalid option: " + s); + } + + return options; + } + }, + JAVA_FIELD { + @NotNull + @Override + public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) { + return new JavaVariableFindUsagesOptions(project); + } }; protected static boolean parseCommonOptions(JavaFindUsagesOptions options, String s) { @@ -170,6 +224,15 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT if (klass == JetClass.class) { return CLASS; } + if (klass == PsiMethod.class) { + return JAVA_METHOD; + } + if (klass == PsiClass.class) { + return JAVA_CLASS; + } + if (klass == PsiField.class) { + return JAVA_FIELD; + } return null; } diff --git a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java index ea002ae4ade..ebc5e0f98df 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java @@ -30,13 +30,8 @@ import org.jetbrains.jet.findUsages.AbstractJetFindUsagesTest; /** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("idea/testData/findUsages") -@InnerTestClasses({JetFindUsagesTest.Kotlin.class}) +@InnerTestClasses({JetFindUsagesTest.Kotlin.class, JetFindUsagesTest.Java.class}) public class JetFindUsagesTest extends AbstractJetFindUsagesTest { - public void testAllFilesPresentInFindUsages() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), true); - } - @TestMetadata("idea/testData/findUsages/kotlin") @InnerTestClasses({Kotlin.FindClassUsages.class, Kotlin.FindFunctionUsages.class, Kotlin.FindObjectUsages.class, Kotlin.FindPropertyUsages.class, Kotlin.FindWithFilteringImports.class, Kotlin.UnresolvedAnnotation.class}) public static class Kotlin extends AbstractJetFindUsagesTest { @@ -380,10 +375,96 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { } } + @TestMetadata("idea/testData/findUsages/java") + @InnerTestClasses({Java.FindJavaClassUsages.class, Java.FindJavaFieldUsages.class, Java.FindJavaMethodUsages.class}) + public static class Java extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInJava() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/java"), Pattern.compile("^(.+)\\.0\\.java$"), true); + } + + @TestMetadata("idea/testData/findUsages/java/findJavaClassUsages") + public static class FindJavaClassUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindJavaClassUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/java/findJavaClassUsages"), Pattern.compile("^(.+)\\.0\\.java$"), true); + } + + @TestMetadata("JKClassAllUsages.0.java") + public void testJKClassAllUsages() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKClassAllUsages.0.java"); + } + + @TestMetadata("JKClassFieldsUsages.0.java") + public void testJKClassFieldsUsages() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKClassFieldsUsages.0.java"); + } + + @TestMetadata("JKClassMethodsUsages.0.java") + public void testJKClassMethodsUsages() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKClassMethodsUsages.0.java"); + } + + @TestMetadata("JKDerivedClasses1.0.java") + public void testJKDerivedClasses1() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses1.0.java"); + } + + @TestMetadata("JKDerivedClasses2.0.java") + public void testJKDerivedClasses2() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses2.0.java"); + } + + @TestMetadata("JKDerivedClasses3.0.java") + public void testJKDerivedClasses3() throws Exception { + doTest("idea/testData/findUsages/java/findJavaClassUsages/JKDerivedClasses3.0.java"); + } + + } + + @TestMetadata("idea/testData/findUsages/java/findJavaFieldUsages") + public static class FindJavaFieldUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindJavaFieldUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/java/findJavaFieldUsages"), Pattern.compile("^(.+)\\.0\\.java$"), true); + } + + @TestMetadata("JKFieldUsages.0.java") + public void testJKFieldUsages() throws Exception { + doTest("idea/testData/findUsages/java/findJavaFieldUsages/JKFieldUsages.0.java"); + } + + } + + @TestMetadata("idea/testData/findUsages/java/findJavaMethodUsages") + public static class FindJavaMethodUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindJavaMethodUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/java/findJavaMethodUsages"), Pattern.compile("^(.+)\\.0\\.java$"), true); + } + + @TestMetadata("JKMethodOverrides.0.java") + public void testJKMethodOverrides() throws Exception { + doTest("idea/testData/findUsages/java/findJavaMethodUsages/JKMethodOverrides.0.java"); + } + + @TestMetadata("JKMethodUsages.0.java") + public void testJKMethodUsages() throws Exception { + doTest("idea/testData/findUsages/java/findJavaMethodUsages/JKMethodUsages.0.java"); + } + + } + + public static Test innerSuite() { + TestSuite suite = new TestSuite("Java"); + suite.addTestSuite(Java.class); + suite.addTestSuite(FindJavaClassUsages.class); + suite.addTestSuite(FindJavaFieldUsages.class); + suite.addTestSuite(FindJavaMethodUsages.class); + return suite; + } + } + public static Test suite() { TestSuite suite = new TestSuite("JetFindUsagesTest"); - suite.addTestSuite(JetFindUsagesTest.class); suite.addTest(Kotlin.innerSuite()); + suite.addTest(Java.innerSuite()); return suite; } }