diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/CategorySupportTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/CategorySupportTest.groovy new file mode 100644 index 000000000000..94d345ee0a3a --- /dev/null +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/CategorySupportTest.groovy @@ -0,0 +1,45 @@ +// 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. +package org.jetbrains.plugins.groovy.lang.resolve + +import com.intellij.psi.PsiModifier +import groovy.transform.CompileStatic +import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrGdkMethod +import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrReflectedMethod +import org.jetbrains.plugins.groovy.util.GroovyLatestTest +import org.jetbrains.plugins.groovy.util.ResolveTest +import org.junit.Test + +@CompileStatic +class CategorySupportTest extends GroovyLatestTest implements ResolveTest { + + @Test + void 'static category method outside of category'() { + def resolved = resolveTest '''\ +@Category(String) class C { def foo() {} } +C.foo("") +''', GrReflectedMethod + assert resolved.modifierList.hasModifierProperty(PsiModifier.STATIC) + } + + @Test + void 'category method within category'() { + resolveTest '''\ +@Category(String) +class C { + def foo() {} + def usage() { foo() } +} +''', GrGdkMethod + } + + @Test + void 'explicit category method within category'() { + resolveTest '''\ +@Category(String) +class C { + static def foo(String s) {} + def usage() { foo() } +} +''', GrGdkMethod + } +} diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy index 53ebf706a1fc..87733eb22d83 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveMethodTest.groovy @@ -722,15 +722,6 @@ class Foo { assertNotNull(resolve('a.groovy')) } - void testCategoryClassMethod() { - def resolved = resolve('a.groovy', GrReflectedMethod) - assertTrue(resolved.modifierList.hasModifierProperty(PsiModifier.STATIC)) - } - - void testCategoryMethodWithinCategory() { - assertNotNull resolve('a.groovy') - } - void testMixinAndCategory() { def ref = configureByText(""" @Category(B) diff --git a/plugins/groovy/testdata/resolve/method/categoryClassMethod/a.groovy b/plugins/groovy/testdata/resolve/method/categoryClassMethod/a.groovy deleted file mode 100644 index d165c4ce3436..000000000000 --- a/plugins/groovy/testdata/resolve/method/categoryClassMethod/a.groovy +++ /dev/null @@ -1,8 +0,0 @@ -@Category(A) -class B { - def foo(){} -} - -class A{} - -B.foo(new A()) diff --git a/plugins/groovy/testdata/resolve/method/categoryMethodWithinCategory/a.groovy b/plugins/groovy/testdata/resolve/method/categoryMethodWithinCategory/a.groovy deleted file mode 100644 index 1e186969961a..000000000000 --- a/plugins/groovy/testdata/resolve/method/categoryMethodWithinCategory/a.groovy +++ /dev/null @@ -1,11 +0,0 @@ -class A {} - -@Category(A) -class B { - - def foo() { - bar() - } - - def bar() {} -} \ No newline at end of file