From bdc7b2eb87d4e89adfc8e2df12ae4d76ec30ea5f Mon Sep 17 00:00:00 2001 From: Aleksey Dobrynin Date: Thu, 17 Oct 2024 13:34:17 +0200 Subject: [PATCH] [Groovy] convert FindOverridingMethodsAndClassesTest to Java (IDEA-327339) GitOrigin-RevId: 4f490cf6928f0b37a7b1f6009c9ea8576f2ecbd5 --- .../FindOverridingMethodsAndClassesTest.java | 118 +++++++++--------- 1 file changed, 62 insertions(+), 56 deletions(-) diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/FindOverridingMethodsAndClassesTest.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/FindOverridingMethodsAndClassesTest.java index e1339945505d..6a4d0116d9f5 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/FindOverridingMethodsAndClassesTest.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/overriding/FindOverridingMethodsAndClassesTest.java @@ -1,87 +1,93 @@ -// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.plugins.groovy.lang.overriding; -package org.jetbrains.plugins.groovy.lang.overriding +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiMethod; +import com.intellij.psi.search.LocalSearchScope; +import com.intellij.psi.search.SearchScope; +import com.intellij.psi.search.searches.ClassInheritorsSearch; +import com.intellij.psi.search.searches.DirectClassInheritorsSearch; +import com.intellij.psi.search.searches.FunctionalExpressionSearch; +import com.intellij.psi.search.searches.OverridingMethodsSearch; +import com.intellij.testFramework.UsefulTestCase; +import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase; +import junit.framework.TestCase; +import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; +import org.jetbrains.plugins.groovy.util.TestUtils; + +import java.util.Arrays; +import java.util.Collection; -import com.intellij.psi.PsiClass -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiMethod -import com.intellij.psi.search.LocalSearchScope -import com.intellij.psi.search.SearchScope -import com.intellij.psi.search.searches.ClassInheritorsSearch -import com.intellij.psi.search.searches.DirectClassInheritorsSearch -import com.intellij.psi.search.searches.FunctionalExpressionSearch -import com.intellij.psi.search.searches.OverridingMethodsSearch -import com.intellij.testFramework.fixtures.LightJavaCodeInsightFixtureTestCase -import org.jetbrains.plugins.groovy.lang.psi.GroovyFile -import org.jetbrains.plugins.groovy.util.TestUtils /** * @author Maxim.Medvedev */ -class FindOverridingMethodsAndClassesTest extends LightJavaCodeInsightFixtureTestCase { +public class FindOverridingMethodsAndClassesTest extends LightJavaCodeInsightFixtureTestCase { @Override protected String getBasePath() { - TestUtils.testDataPath + "overriding/findOverridingMethodsAndClasses" + return TestUtils.getTestDataPath() + "overriding/findOverridingMethodsAndClasses"; } - void testSimpleCase() { - doTest(1, 1) + public void testSimpleCase() { + doTest(1, 1); } - void testAnonymousClass() { - doTest(2, 2) + public void testAnonymousClass() { + doTest(2, 2); } - void testTraitImplementsInterface() { - doTest(4, 4) + public void testTraitImplementsInterface() { + doTest(4, 4); } - void testClassExtendsTrait() { - doTest(2, 2) + public void testClassExtendsTrait() { + doTest(2, 2); } - void testTraitExtendsTrait() { doTest 2, 2 } - void testTraitImplementsTrait() { doTest 2, 2 } + public void testTraitExtendsTrait() { doTest(2, 2); } + + public void testTraitImplementsTrait() { doTest(2, 2); } private void doTest(int methodCount, int classCount) { - myFixture.configureByFile(getTestName(false) + ".groovy") - final GroovyFile groovyFile = (GroovyFile)myFixture.file - final PsiClass psiClass = groovyFile.classes[0] - final PsiMethod method = psiClass.methods[0] + myFixture.configureByFile(getTestName(false) + ".groovy"); + final GroovyFile groovyFile = (GroovyFile)myFixture.getFile(); + final PsiClass psiClass = groovyFile.getClasses()[0]; + final PsiMethod method = psiClass.getMethods()[0]; - final Collection methods = OverridingMethodsSearch.search(method, psiClass.resolveScope, true).findAll() - assertEquals("Method count is wrong", methodCount, methods.size()) + final Collection methods = OverridingMethodsSearch.search(method, psiClass.getResolveScope(), true).findAll(); + TestCase.assertEquals("Method count is wrong", methodCount, methods.size()); - final Collection classes = ClassInheritorsSearch.search(psiClass).findAll() - assertEquals("Class count is wrong", classCount, classes.size()) + final Collection classes = ClassInheritorsSearch.search(psiClass).findAll(); + TestCase.assertEquals("Class count is wrong", classCount, classes.size()); } - void "test find java functional expression passed into a groovy method"() { - myFixture.addFileToProject("a.groovy", "interface I { void foo(); }; class C { static void bar(I i) {}}") - myFixture.addFileToProject("a.java", "class D {{ C.bar(() -> {}); }") - assertSize(1, FunctionalExpressionSearch.search(myFixture.findClass("I")).findAll()) + public void test_find_java_functional_expression_passed_into_a_groovy_method() { + myFixture.addFileToProject("a.groovy", "interface I { void foo(); }; class C { static void bar(I i) {}}"); + myFixture.addFileToProject("a.java", "class D {{ C.bar(() -> {}); }"); + UsefulTestCase.assertSize(1, FunctionalExpressionSearch.search(myFixture.findClass("I")).findAll()); } - void 'test find sub classes works even in local scope'() { - def t = myFixture.addFileToProject('x/T.groovy', 'package x; trait T {}') - def t2 = myFixture.addFileToProject('x/T2.groovy', 'package x; class T2 implements T {}') + public void test_find_sub_classes_works_even_in_local_scope() { + PsiFile t = myFixture.addFileToProject("x/T.groovy", "package x; trait T {}"); + PsiFile t2 = myFixture.addFileToProject("x/T2.groovy", "package x; class T2 implements T {}"); - PsiClass classT = ((GroovyFile)t).classes[0] - PsiClass classT2 = ((GroovyFile)t2).classes[0] - PsiClass superClass = classT2.getSuperClass() - assertTrue(Arrays.asList(classT2.getSupers()).contains(classT)) + PsiClass classT = ((GroovyFile)t).getClasses()[0]; + PsiClass classT2 = ((GroovyFile)t2).getClasses()[0]; + TestCase.assertTrue(Arrays.asList(classT2.getSupers()).contains(classT)); - PsiElement[] files = [t, t2] - SearchScope scope = new LocalSearchScope(files) - Collection subClasses = DirectClassInheritorsSearch.search(classT, scope).findAll() - PsiClass subClass = assertOneElement(subClasses) - assertEquals("T2", subClass.getName()) + PsiElement[] files = new PsiElement[]{t, t2}; + SearchScope scope = new LocalSearchScope(files); + Collection subClasses = DirectClassInheritorsSearch.search(classT, scope).findAll(); + PsiClass subClass = UsefulTestCase.assertOneElement(subClasses); + TestCase.assertEquals("T2", subClass.getName()); } - void "test find groovy inheritor of java class in local scope"() { - def superClass = myFixture.addClass("class Super {}") - def file = myFixture.addFileToProject("a.groovy", "class Foo extends Super {}") - - assert ClassInheritorsSearch.search(superClass).findAll().size() == 1 - assert ClassInheritorsSearch.search(superClass, new LocalSearchScope(file), true).findAll().size() == 1 + public void test_find_groovy_inheritor_of_java_class_in_local_scope() { + PsiClass superClass = myFixture.addClass("class Super {}"); + PsiFile file = myFixture.addFileToProject("a.groovy", "class Foo extends Super {}"); + + assertEquals(1, ClassInheritorsSearch.search(superClass).findAll().size()); + assertEquals(1, ClassInheritorsSearch.search(superClass, new LocalSearchScope(file), true).findAll().size()); } }