You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2021/12/26 16:52:59 UTC
[groovy] branch master updated: GROOVY-7482: add test case
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new f2b87bc GROOVY-7482: add test case
f2b87bc is described below
commit f2b87bcca938e675dd79c4771509602f109c4553
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Sun Dec 26 10:52:50 2021 -0600
GROOVY-7482: add test case
---
.../{Groovy4248Bug.groovy => Groovy4248.groovy} | 42 +++++++------
.../{Groovy4554Bug.groovy => Groovy4554.groovy} | 25 ++++----
.../{Groovy6302Bug.groovy => Groovy6302.groovy} | 37 ++++++------
.../{Groovy6404Bug.groovy => Groovy6404.groovy} | 34 ++++++-----
.../groovy/tools/stubgenerator/Groovy6617.groovy | 68 ++++++++++++++++++++++
.../tools/stubgenerator/Groovy6617Bug.groovy | 65 ---------------------
.../groovy/tools/stubgenerator/Groovy6855.groovy | 65 +++++++++++++++++++++
.../tools/stubgenerator/Groovy6855Bug.groovy | 62 --------------------
.../{Groovy7052Bug.groovy => Groovy7052.groovy} | 33 +++++------
.../groovy/tools/stubgenerator/Groovy7113.groovy | 66 +++++++++++++++++++++
.../tools/stubgenerator/Groovy7113Bug.groovy | 67 ---------------------
.../{Groovy7366Bug.groovy => Groovy7366.groovy} | 57 +++++++++---------
...y7366BugVariant.groovy => Groovy7366pt2.groovy} | 57 +++++++++---------
.../{Groovy9962.groovy => Groovy7482.groovy} | 35 +++++++----
.../{Groovy7747Bug.groovy => Groovy7747.groovy} | 50 ++++++++--------
.../{Groovy7966Bug.groovy => Groovy7966.groovy} | 30 +++++-----
...Groovy8343StubTest.groovy => Groovy8343.groovy} | 39 +++++++------
.../{Groovy8774Bug.groovy => Groovy8774.groovy} | 23 ++++----
.../groovy/tools/stubgenerator/Groovy9405.groovy | 35 +++++------
.../groovy/tools/stubgenerator/Groovy9462.groovy | 9 +--
.../groovy/tools/stubgenerator/Groovy9962.groovy | 14 ++---
21 files changed, 463 insertions(+), 450 deletions(-)
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248.groovy
similarity index 64%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248.groovy
index c2e3f09..3eb1144 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4248.groovy
@@ -16,41 +16,39 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-
package org.codehaus.groovy.tools.stubgenerator
/**
* Test that Parameter annotations are kept in the Java stub.
*/
-class Groovy4248Bug extends StringSourcesStubTestCase {
+final class Groovy4248 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'foo/Main.java' : '''
- package foo;
-
- import bar.GroovyClass;
-
- public class Main {
- public static void main(String[] args) throws Exception {
- new GroovyClass().getClass().getMethod("getView").getAnnotations();
- }
+ 'foo/Main.java': '''
+ package foo;
+ import bar.GroovyClass;
+ public class Main {
+ public static void main(String[] args) throws Exception {
+ new GroovyClass().getClass().getMethod("getView").getAnnotations();
}
- ''',
- 'bar/GroovyClass.groovy': '''
- package bar
-
- class GroovyClass {
- @Deprecated
- String getView(@Deprecated String pathVariable) {
- null
- }
+ }
+ ''',
+
+ 'bar/GroovyClass.groovy': '''
+ package bar
+ class GroovyClass {
+ @Deprecated
+ String getView(@Deprecated String pathVariable) {
+ null
}
- '''
+ }
+ '''
]
}
+ @Override
void verifyStubs() {
def stubSource = stubJavaSourceFor('bar.GroovyClass')
assert stubSource.contains('@java.lang.Deprecated() public java.lang.String getView')
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554.groovy
similarity index 73%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554.groovy
index 1700e18..d9b668b 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy4554.groovy
@@ -18,25 +18,24 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-class Groovy4554Bug extends StringSourcesStubTestCase {
+final class Groovy4554 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Dummy.groovy': '''
- interface Dummy { }
- ''',
- 'test/package-info.java': '''
- @java.lang.Deprecated
- package test;
- '''
+ 'Dummy.groovy': '''
+ interface Dummy {
+ }
+ ''',
+
+ 'test/package-info.java': '''
+ @java.lang.Deprecated
+ package test;
+ '''
]
}
-// protected void init() {
-// debug = true
-// delete = false
-// }
-
+ @Override
void verifyStubs() {
def piClass = loader.loadClass('test.package-info')
assert piClass.isInterface()
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302.groovy
similarity index 62%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302.groovy
index 1137347..446e1bd 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6302.groovy
@@ -21,30 +21,31 @@ package org.codehaus.groovy.tools.stubgenerator
/**
* Test that multi-dimensional arrays are compiled successfully.
*/
-class Groovy6302Bug extends StringSourcesStubTestCase {
+final class Groovy6302 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'foo/Main.java' : '''
- package foo;
-
- import bar.GroovyClass;
-
- public class Main {
- public static void main(String[] args) {
- new GroovyClass().foo();
- }
+ 'foo/Main.java': '''
+ package foo;
+ import bar.GroovyClass;
+ public class Main {
+ public static void main(String[] args) {
+ new GroovyClass().foo();
}
- ''',
- 'bar/GroovyClass.groovy': '''
- package bar
+ }
+ ''',
- class GroovyClass {
- Map<String, String[][]> foo() { null }
- }
- '''
+ 'bar/GroovyClass.groovy': '''
+ package bar
+ class GroovyClass {
+ Map<String, String[][]> foo() { null }
+ }
+ '''
]
}
- void verifyStubs() {}
+ @Override
+ void verifyStubs() {
+ }
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404.groovy
similarity index 65%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404.groovy
index ef43c82..240adab 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6404.groovy
@@ -21,28 +21,30 @@ package org.codehaus.groovy.tools.stubgenerator
/**
* Test that empty enums are compiled successfully.
*/
-class Groovy6404Bug extends StringSourcesStubTestCase {
+final class Groovy6404 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'foo/Main.java' : '''
- package foo;
-
- import bar.MyEnum;
-
- public class Main {
- public static void main(String[] args) {
- System.out.println(MyEnum.values());
- }
+ 'foo/Main.java': '''
+ package foo;
+ import bar.MyEnum;
+ public class Main {
+ public static void main(String[] args) {
+ System.out.println(MyEnum.values());
}
- ''',
- 'bar/MyEnum.groovy': '''
- package bar
+ }
+ ''',
- enum MyEnum { }
- '''
+ 'bar/MyEnum.groovy': '''
+ package bar
+ enum MyEnum {
+ }
+ '''
]
}
- void verifyStubs() {}
+ @Override
+ void verifyStubs() {
+ }
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617.groovy
new file mode 100644
index 0000000..297689f
--- /dev/null
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617.groovy
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.groovy.tools.stubgenerator
+
+/**
+ * Test that array covariant return types are compiled successfully.
+ */
+final class Groovy6617 extends StringSourcesStubTestCase {
+
+ @Override
+ Map<String, String> provideSources() {
+ [
+ 'foo/JavaApi.java': '''
+ package foo;
+ import java.util.List;
+ public interface JavaApi {
+ public foo.JavaDataObject[] makeArray();
+ public foo.JavaDataObject[] makeArrayFromParams(foo.JavaDataObject[] objects);
+ public List<JavaDataObject> makeList();
+ }
+ ''',
+
+ 'foo/JavaDataObject.java': '''
+ package foo;
+ public class JavaDataObject {
+ boolean active;
+ }
+ ''',
+
+ 'bar/GroovyLangService.groovy': '''
+ package bar
+ import foo.JavaApi
+ import foo.JavaDataObject
+ class GroovyLangService implements JavaApi {
+ JavaDataObject[] makeArray () {
+ new JavaDataObject[10]
+ }
+ JavaDataObject[] makeArrayFromParams (JavaDataObject[] objects) {
+ objects
+ }
+ List<JavaDataObject> makeList () {
+ new ArrayList<JavaDataObject>(10)
+ }
+ }
+ '''
+ ]
+ }
+
+ @Override
+ void verifyStubs() {
+ }
+}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617Bug.groovy
deleted file mode 100644
index df51394..0000000
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6617Bug.groovy
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.codehaus.groovy.tools.stubgenerator
-
-/**
- * Test that array covariant return types are compiled successfully.
- */
-class Groovy6617Bug extends StringSourcesStubTestCase {
-
- Map<String, String> provideSources() {
- [
- 'foo/JavaApi.java' : '''
- package foo;
- import java.util.List;
- public interface JavaApi {
- public foo.JavaDataObject[] makeArray ();
- public foo.JavaDataObject[] makeArrayFromParams (foo.JavaDataObject[] objects);
- public List<JavaDataObject> makeList ();
- }
- ''',
- 'foo/JavaDataObject.java' : '''
- package foo;
- public class JavaDataObject {
- boolean active;
- }
- ''',
- 'bar/GroovyLangService.groovy': '''
- package bar
-
- import foo.JavaApi
- import foo.JavaDataObject
-
- class GroovyLangService implements JavaApi {
- JavaDataObject[] makeArray () {
- new JavaDataObject[10]
- }
- JavaDataObject[] makeArrayFromParams (JavaDataObject[] objects) {
- objects
- }
- List<JavaDataObject> makeList () {
- new ArrayList<JavaDataObject>(10)
- }
- }
- '''
- ]
- }
-
- void verifyStubs() { }
-}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855.groovy
new file mode 100644
index 0000000..5468156
--- /dev/null
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855.groovy
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.groovy.tools.stubgenerator
+
+/**
+ * Test that default Closure annotation values compile correctly within stubs.
+ */
+final class Groovy6855 extends StringSourcesStubTestCase {
+
+ @Override
+ Map<String, String> provideSources() {
+ [
+ 'foo/Main.java': '''
+ package foo;
+
+ import bar.Get;
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Constructor;
+
+ @Get public class Main {
+ public static void main(String[] args) throws Exception {
+ Annotation getAnnotation = Main.class.getAnnotations()[0];
+ Class closureClass = (Class) getAnnotation.annotationType().getMethod("value").getDefaultValue();
+ Constructor closureConstructor = closureClass.getConstructor(Object.class, Object.class);
+ System.out.println(((groovy.lang.Closure) closureConstructor.newInstance(null, null)).call());
+ }
+ }
+ ''',
+
+ 'bar/Get.groovy': '''
+ package bar
+
+ import java.lang.annotation.*
+
+ @Target(ElementType.TYPE)
+ @Retention(RetentionPolicy.RUNTIME)
+ @interface Get {
+ Class value() default {return 42}
+ }
+ '''
+ ]
+ }
+
+ @Override
+ void verifyStubs() {
+ String stub = stubJavaSourceFor('bar.Get')
+ assert stub.contains('java.lang.Class value() default groovy.lang.Closure.class')
+ }
+}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855Bug.groovy
deleted file mode 100644
index 0237b90..0000000
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy6855Bug.groovy
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.codehaus.groovy.tools.stubgenerator
-
-/**
- * Test that default Closure annotation values compile correctly within stubs.
- */
-class Groovy6855Bug extends StringSourcesStubTestCase {
-
- Map<String, String> provideSources() {
- [
- 'foo/Main.java' : '''
- package foo;
-
- import bar.Get;
- import java.lang.annotation.Annotation;
- import java.lang.reflect.Constructor;
-
- @Get public class Main {
- public static void main(String[] args) throws Exception {
- Annotation getAnnotation = Main.class.getAnnotations()[0];
- Class closureClass = (Class) getAnnotation.annotationType().getMethod("value").getDefaultValue();
- Constructor closureConstructor = closureClass.getConstructor(Object.class, Object.class);
- System.out.println(((groovy.lang.Closure) closureConstructor.newInstance(null, null)).call());
- }
- }
- ''',
- 'bar/Get.groovy' : '''
- package bar
-
- import java.lang.annotation.*
-
- @Target(ElementType.TYPE)
- @Retention(RetentionPolicy.RUNTIME)
- @interface Get {
- Class value() default {return 42}
- }
- '''
- ]
- }
-
- void verifyStubs() {
- def stubSource = stubJavaSourceFor('bar.Get')
- assert stubSource.contains('java.lang.Class value() default groovy.lang.Closure.class')
- }
-}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052.groovy
similarity index 65%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052.groovy
index 4e3e001..4727aeb 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7052.groovy
@@ -16,31 +16,30 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-
package org.codehaus.groovy.tools.stubgenerator
-/**
- * Test that traits do not mess up with stub generation.
- */
-class Groovy7052Bug extends StringSourcesStubTestCase {
+final class Groovy7052 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Foo.groovy': '''
- trait Foo {}
- ''',
- 'Bar.java': '''
- class Bar implements Foo {}
- ''',
- 'Baz.groovy': '''
- class Baz implements Foo {}
- '''
+ 'Foo.groovy': '''
+ trait Foo {}
+ ''',
+
+ 'Bar.java': '''
+ class Bar implements Foo {}
+ ''',
+
+ 'Baz.groovy': '''
+ class Baz implements Foo {}
+ '''
]
}
+ @Override
void verifyStubs() {
- def stubSource = stubJavaSourceFor('Foo')
- assert stubSource.contains('interface Foo')
+ String stub = stubJavaSourceFor('Foo')
+ assert stub.contains('interface Foo')
}
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113.groovy
new file mode 100644
index 0000000..2489ebc
--- /dev/null
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113.groovy
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.groovy.tools.stubgenerator
+
+final class Groovy7113 extends StringSourcesStubTestCase {
+
+ @Override
+ Map<String, String> provideSources() {
+ [
+ 'Foo.groovy': '''
+ trait Foo {
+ int foo() { 1 }
+ void bar(int x) { }
+ void baz(int y) { }
+ }
+ ''',
+
+ 'Bar.java': '''
+ class Bar extends Baz { }
+ ''',
+
+ 'Baz.groovy': '''
+ class Baz implements Foo { void bar(int x) { } }
+ ''',
+
+ 'AbstractFoo.groovy':'''
+ abstract class AbstractFoo implements Foo { }
+ ''',
+
+ 'ConcreteBar.java': '''
+ public class ConcreteBar extends AbstractFoo { }
+ '''
+ ]
+ }
+
+ @Override
+ void verifyStubs() {
+ String stub = stubJavaSourceFor('Foo')
+ assert stub.contains('interface Foo')
+ assert stub.contains('int foo()')
+ assert stub.contains('void baz(int y)')
+ assert stub.contains('void bar(int x)')
+
+ stub = stubJavaSourceFor('Baz')
+ assert stub.contains('class Baz')
+ assert stub.contains('int foo()')
+ assert stub.contains('void baz(int y)')
+ assert stub.contains('void bar(int x)')
+ }
+}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113Bug.groovy
deleted file mode 100644
index 4ad27fb..0000000
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7113Bug.groovy
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-
-
-package org.codehaus.groovy.tools.stubgenerator
-
-/**
- * Test that traits do not mess up with stub generation.
- */
-class Groovy7113Bug extends StringSourcesStubTestCase {
-
- Map<String, String> provideSources() {
- [
- 'Foo.groovy': '''
- trait Foo {
- int foo() { 1 }
- void bar(int x) {}
- void baz(int y) { }
- }
- ''',
- 'Bar.java': '''
- class Bar extends Baz { }
- ''',
- 'Baz.groovy': '''
- class Baz implements Foo { void bar(int x) {} }
- ''',
- 'AbstractFoo.groovy':'''
- abstract class AbstractFoo implements Foo {}
- ''',
- 'ConcreteBar.java': '''
- public class ConcreteBar extends AbstractFoo {}
- '''
- ]
- }
-
- void verifyStubs() {
- def stubSource = stubJavaSourceFor('Foo')
- assert stubSource.contains('interface Foo')
- assert stubSource.contains('int foo()')
- assert stubSource.contains('void baz(int y)')
- assert stubSource.contains('void bar(int x)')
-
- stubSource = stubJavaSourceFor('Baz')
- assert stubSource.contains('class Baz')
- assert stubSource.contains('int foo()')
- assert stubSource.contains('void baz(int y)')
- assert stubSource.contains('void bar(int x)')
- }
-}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366.groovy
similarity index 58%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366.groovy
index 8330226..470f7bb 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366.groovy
@@ -18,46 +18,49 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-class Groovy7366Bug extends StringSourcesStubTestCase {
+final class Groovy7366 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Constants.java': '''
- package test;
- public interface Constants {
- String C1 = "c1";
- }
- ''',
- 'MyAnnotation.java': '''
- package test;
- public @interface MyAnnotation {
- String value();
- }
- ''',
+ 'Constants.java': '''
+ package test;
+ public interface Constants {
+ String C1 = "c1";
+ }
+ ''',
+
+ 'MyAnnotation.java': '''
+ package test;
+ public @interface MyAnnotation {
+ String value();
+ }
+ ''',
- 'Test.groovy': '''
- package test
- import static test.Constants.C1
- @MyAnnotation(C1)
- class Test {
- def test
- Test(test) {
- this.test = test
- }
+ 'Test.groovy': '''
+ package test
+ import static test.Constants.C1
+ @MyAnnotation(C1)
+ class Test {
+ def test
+ Test(test) {
+ this.test = test
}
- ''',
- 'Hello.java': '''
+ }
+ ''',
+
+ 'Hello.java': '''
package test;
public class Hello {
public static void main(String[] args) {
System.out.println(new Test("hello").getTest());
}
}
- '''
+ '''
]
}
+ @Override
void verifyStubs() {
-
}
-}
\ No newline at end of file
+}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366BugVariant.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366pt2.groovy
similarity index 58%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366BugVariant.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366pt2.groovy
index 9bb8c2a..e5c3a18 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366BugVariant.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7366pt2.groovy
@@ -19,46 +19,49 @@
package org.codehaus.groovy.tools.stubgenerator
-class Groovy7366BugVariant extends StringSourcesStubTestCase {
+final class Groovy7366pt2 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Constants.java': '''
- package test;
- public interface Constants {
- String C1 = "c1";
- }
- ''',
- 'MyAnnotation.java': '''
- package test;
- public @interface MyAnnotation {
- String value();
- }
- ''',
+ 'Constants.java': '''
+ package test;
+ public interface Constants {
+ String C1 = "c1";
+ }
+ ''',
+
+ 'MyAnnotation.java': '''
+ package test;
+ public @interface MyAnnotation {
+ String value();
+ }
+ ''',
- 'Test.groovy': '''
- package test
- import static test.Constants.*
- @MyAnnotation(C1)
- class Test {
- def test
- Test(test) {
- this.test = test
- }
+ 'Test.groovy': '''
+ package test
+ import static test.Constants.*
+ @MyAnnotation(C1)
+ class Test {
+ def test
+ Test(test) {
+ this.test = test
}
- ''',
- 'Hello.java': '''
+ }
+ ''',
+
+ 'Hello.java': '''
package test;
public class Hello {
public static void main(String[] args) {
System.out.println(new Test("hello").getTest());
}
}
- '''
+ '''
]
}
+ @Override
void verifyStubs() {
-
}
-}
\ No newline at end of file
+}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7482.groovy
similarity index 59%
copy from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy
copy to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7482.groovy
index 145780a..cd87f4a 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7482.groovy
@@ -16,28 +16,39 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.codehaus.groovy.tools.stubgenerator
-/**
- * Test that annotations with string values containing dollar signs don't change string value in stub.
- */
-class Groovy9962 extends StringSourcesStubTestCase {
+final class Groovy7482 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Foo.java': '''
- public class Foo {}
+ 'A.java': '''
+ abstract class A {
+ private Object getProperty(String name) {
+ return null;
+ }
+ }
''',
- 'Groovy9962.groovy': '''
- @Deprecated(since = '${name} paid $7')
- class Groovy9962 {}
+
+ 'C.groovy': '''
+ class C extends A {
+ }
+ ''',
+
+ 'Main.java': '''
+ public class Main {
+ public static void main(String[] args) {
+ new C();
+ }
+ }
'''
]
}
+ @Override
void verifyStubs() {
- def stubSource = stubJavaSourceFor('Groovy9962')
- assert stubSource.contains('${name} paid $7')
+ String stub = stubJavaSourceFor('C')
+ assert !stub.contains('getProperty')
}
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747.groovy
similarity index 55%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747.groovy
index 7c551b9..9701157 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7747.groovy
@@ -21,43 +21,45 @@ package org.codehaus.groovy.tools.stubgenerator
/**
* Test that enums with an abstract method are compiled successfully.
*/
-class Groovy7747Bug extends StringSourcesStubTestCase {
+final class Groovy7747 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Main.java' : '''
- import enums.EnumWithAbstractMethod;
- public class Main {
+ 'Main.java': '''
+ import enums.EnumWithAbstractMethod;
+ public class Main {
public static void main(String[] args) {
- System.out.println(EnumWithAbstractMethod.values());
- System.out.println(EnumWithAbstractMethod.ONE.getInt());
+ System.out.println(EnumWithAbstractMethod.values());
+ System.out.println(EnumWithAbstractMethod.ONE.getInt());
}
- }
- ''',
- 'enums/EnumWithAbstractMethod.groovy' : '''
- package enums
- enum EnumWithAbstractMethod {
+ }
+ ''',
+ 'enums/EnumWithAbstractMethod.groovy': '''
+ package enums
+ enum EnumWithAbstractMethod {
ONE {
- @Override
- int getInt() {
- return 1
- }
+ @Override
+ int getInt() {
+ return 1
+ }
},
TWO {
- @Override
- int getInt() {
- return 2
- }
+ @Override
+ int getInt() {
+ return 2
+ }
}
abstract int getInt()
- }
- '''
+ }
+ '''
]
}
+ @Override
void verifyStubs() {
- def stubSource = stubJavaSourceFor('enums.EnumWithAbstractMethod')
- assert stubSource.contains('enum EnumWithAbstractMethod')
- assert !stubSource.matches('abstract.*enum')
+ String stub = stubJavaSourceFor('enums.EnumWithAbstractMethod')
+ assert stub.contains('enum EnumWithAbstractMethod')
+ assert !stub.matches('abstract.*enum')
}
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966.groovy
similarity index 72%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966.groovy
index acdca6b..93a5034 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy7966.groovy
@@ -21,31 +21,31 @@ package org.codehaus.groovy.tools.stubgenerator
/**
* Test that fileorder doesn't impact whether GroovyObject appears in implements list.
*/
-class Groovy7966Bug extends StringSourcesStubTestCase {
+final class Groovy7966 extends StringSourcesStubTestCase {
@Override
Map<String, String> provideSources() {
[
- 'Before.groovy' : '''
- class Before extends AbstractThing {}
- ''',
- 'AbstractThing.groovy' : '''
- abstract class AbstractThing {}
- ''',
- 'JavaThing.java' : '''
- public class JavaThing {
- }
- ''',
- 'After.groovy' : '''
- class After extends AbstractThing {}
- ''',
+ 'Before.groovy': '''
+ class Before extends AbstractThing {}
+ ''',
+ 'AbstractThing.groovy': '''
+ abstract class AbstractThing {}
+ ''',
+ 'JavaThing.java': '''
+ public class JavaThing {
+ }
+ ''',
+ 'After.groovy': '''
+ class After extends AbstractThing {}
+ ''',
]
}
@Override
protected List<File> collectSources(File path) {
// parent method uses order returned by the file system - we want to maintain supplied order
- return provideSources().collect{ name, _ -> new File(path, name) }
+ provideSources().collect { name, x -> new File(path, name) }
}
@Override
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343StubTest.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343.groovy
similarity index 55%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343StubTest.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343.groovy
index a8bf83d..0ddb1b0 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343StubTest.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8343.groovy
@@ -18,30 +18,31 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-class Groovy8343StubTest extends StringSourcesStubTestCase {
+final class Groovy8343 extends StringSourcesStubTestCase {
@Override
Map<String, String> provideSources() {
[
- 'groovy/Groovy8343.java': '''
- package groovy;
- /**
- * Precompiled Java class in same package as Groovy8343Test
- */
- public interface Groovy8343 {
- Groovy8343 createRelative(String relativePath);
- }
- ''',
- 'groovy/Groovy8343Test.groovy': '''
- package groovy
- @groovy.transform.CompileStatic
- class Groovy8343Impl implements Groovy8343 {
- Groovy8343 createRelative(String relativePath) {
- throw new UnsupportedOperationException("Method createRelative not supported")
- }
+ 'groovy/Groovy8343.java': '''
+ package groovy;
+ /**
+ * Precompiled Java class in same package as Groovy8343Test
+ */
+ public interface Groovy8343 {
+ Groovy8343 createRelative(String relativePath);
+ }
+ ''',
+
+ 'groovy/Groovy8343Test.groovy': '''
+ package groovy
+ @groovy.transform.CompileStatic
+ class Groovy8343Impl implements Groovy8343 {
+ Groovy8343 createRelative(String relativePath) {
+ throw new UnsupportedOperationException("Method createRelative not supported")
}
- assert new Groovy8343Impl()
- '''
+ }
+ assert new Groovy8343Impl()
+ '''
]
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774Bug.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774.groovy
similarity index 76%
rename from src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774Bug.groovy
rename to src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774.groovy
index 46dd03e..5508de4 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774Bug.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy8774.groovy
@@ -18,25 +18,22 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-class Groovy8774Bug extends StringSourcesStubTestCase {
+final class Groovy8774 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'Dummy.java': '''
- public interface Dummy { }
- ''',
- 'test/package-info.groovy': '''
- @java.lang.Deprecated
- package test
- '''
+ 'Dummy.java': '''
+ public interface Dummy { }
+ ''',
+ 'test/package-info.groovy': '''
+ @java.lang.Deprecated
+ package test
+ '''
]
}
-// protected void init() {
-// debug = true
-// delete = false
-// }
-
+ @Override
void verifyStubs() {
assert stubJavaSourceFor('test/package-info').contains('@java.lang.Deprecated')
assert stubJavaSourceFor('test/package-info').contains('package test;')
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9405.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9405.groovy
index 73db7f0..f9346cf 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9405.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9405.groovy
@@ -18,31 +18,28 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-class Groovy9405 extends StringSourcesStubTestCase {
+final class Groovy9405 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
- 'test/Requires.java': '''
- package test;
- import java.lang.annotation.*;
- @Retention(RetentionPolicy.RUNTIME)
- @Target({ElementType.PACKAGE})
- public @interface Requires {
- Class<? extends groovy.lang.Closure> condition();
- }
- ''',
- 'test/package-info.groovy': '''
- @test.Requires(condition = { -> true })
- package test
- '''
+ 'test/Requires.java': '''
+ package test;
+ import java.lang.annotation.*;
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ElementType.PACKAGE})
+ public @interface Requires {
+ Class<? extends groovy.lang.Closure> condition();
+ }
+ ''',
+ 'test/package-info.groovy': '''
+ @test.Requires(condition = { -> true })
+ package test
+ '''
]
}
-// protected void init() {
-// debug = true
-// delete = false
-// }
-
+ @Override
void verifyStubs() {
def piClass = loader.loadClass('test.package-info')
def inners = piClass.classes
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9462.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9462.groovy
index addb970..5b26a86 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9462.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9462.groovy
@@ -18,14 +18,11 @@
*/
package org.codehaus.groovy.tools.stubgenerator
-import groovy.transform.CompileStatic
-
-@CompileStatic
final class Groovy9462 extends StringSourcesStubTestCase {
@Override
Map<String, String> provideSources() {
- return [
+ [
'Main.java': '''
public class Main {
public static void main(String[] args) {
@@ -58,7 +55,7 @@ final class Groovy9462 extends StringSourcesStubTestCase {
@Override
void verifyStubs() {
- def javaStub = stubJavaSourceFor('Neo4jRelationship')
- assert javaStub.contains("public Neo4jRelationship${System.lineSeparator()}(F from, T to,")
+ String stub = stubJavaSourceFor('Neo4jRelationship')
+ assert stub.contains("public Neo4jRelationship${System.lineSeparator()}(F from, T to,")
}
}
diff --git a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy
index 145780a..a86069b 100644
--- a/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy
+++ b/src/test/org/codehaus/groovy/tools/stubgenerator/Groovy9962.groovy
@@ -16,28 +16,26 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.codehaus.groovy.tools.stubgenerator
-/**
- * Test that annotations with string values containing dollar signs don't change string value in stub.
- */
-class Groovy9962 extends StringSourcesStubTestCase {
+final class Groovy9962 extends StringSourcesStubTestCase {
+ @Override
Map<String, String> provideSources() {
[
'Foo.java': '''
public class Foo {}
''',
'Groovy9962.groovy': '''
- @Deprecated(since = '${name} paid $7')
+ @Deprecated(since = '${name} paid $7') // value with $
class Groovy9962 {}
'''
]
}
+ @Override
void verifyStubs() {
- def stubSource = stubJavaSourceFor('Groovy9962')
- assert stubSource.contains('${name} paid $7')
+ String stub = stubJavaSourceFor('Groovy9962')
+ assert stub.contains('${name} paid $7')
}
}