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')
     }
 }