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 2019/08/30 19:28:26 UTC

[groovy] branch master updated: JUnit 4 refactor

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 4c3da9c  JUnit 4 refactor
4c3da9c is described below

commit 4c3da9c84ffeb17a62bce0f7c5302f04092f7fc4
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Fri Aug 30 14:19:47 2019 -0500

    JUnit 4 refactor
---
 src/test/groovy/bugs/Groovy3311.groovy             | 55 ++++++++++++++++++++++
 src/test/groovy/bugs/Groovy3311Bug.groovy          | 33 -------------
 .../{Groovy8943Bug.groovy => Groovy8943.groovy}    | 10 +++-
 .../{Groovy8947Bug.groovy => Groovy8947.groovy}    | 39 ++++++++-------
 .../{Groovy9215Bug.groovy => Groovy9215.groovy}    | 49 +++++++++++--------
 .../{Groovy9217Bug.groovy => Groovy9217.groovy}    | 21 ++++++---
 .../{Groovy9226Bug.groovy => Groovy9226.groovy}    | 17 +++++--
 7 files changed, 143 insertions(+), 81 deletions(-)

diff --git a/src/test/groovy/bugs/Groovy3311.groovy b/src/test/groovy/bugs/Groovy3311.groovy
new file mode 100644
index 0000000..b95c4c4
--- /dev/null
+++ b/src/test/groovy/bugs/Groovy3311.groovy
@@ -0,0 +1,55 @@
+/*
+ *  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 groovy.bugs
+
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import static groovy.test.GroovyAssert.assertScript
+
+@CompileStatic
+final class Groovy3311 {
+
+    @Test
+    void testStaticInitUsingOwnConstructor() {
+        assertScript '''
+            class Day extends Date {
+                static Day get(_date) {
+                    return new Day(new java.text.SimpleDateFormat('MM.dd.yyyy').parse(_date))
+                }
+                Day(Date _date) {
+                    super(_date.time)
+                    def time = getTime()
+                    24.times { hour ->
+                        hoursOfTheDay << new Date(time + hour*1000*60*60)
+                    }
+                }
+                List<Date> hoursOfTheDay = []
+
+                @Override String toString() {
+                    this.format('MM.dd.yyyy')
+                }
+
+                static def period = (1..3).collect { get "12.3${it}.1999" }
+            }
+
+            assert Day.period*.toString() == ['12.31.1999', '01.01.2000', '01.02.2000']
+        '''
+    }
+}
diff --git a/src/test/groovy/bugs/Groovy3311Bug.groovy b/src/test/groovy/bugs/Groovy3311Bug.groovy
deleted file mode 100644
index 9b41244..0000000
--- a/src/test/groovy/bugs/Groovy3311Bug.groovy
+++ /dev/null
@@ -1,33 +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 groovy.bugs
-
-class Groovy3311Bug extends GroovyTestCase {
-    static period = new Groovy3311Bug()
-    static period2 = 24
-
-    def Groovy3311Bug() {
-        // the pre-defined constant for 24 should be correctly init before next statement
-        assert (24 != null)
-    }
-
-    def void testStaticInitUsingOwnConstructorUsingAPredefinedConstant() {
-        assert (Groovy3311Bug.period2 == 24)
-    }
-}
diff --git a/src/test/groovy/bugs/Groovy8943Bug.groovy b/src/test/groovy/bugs/Groovy8943.groovy
similarity index 88%
rename from src/test/groovy/bugs/Groovy8943Bug.groovy
rename to src/test/groovy/bugs/Groovy8943.groovy
index 1721bba..69fd9d2 100644
--- a/src/test/groovy/bugs/Groovy8943Bug.groovy
+++ b/src/test/groovy/bugs/Groovy8943.groovy
@@ -18,7 +18,15 @@
  */
 package groovy.bugs
 
-class Groovy8943Bug extends GroovyTestCase {
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import static groovy.test.GroovyAssert.assertScript
+
+@CompileStatic
+final class Groovy8943 {
+
+    @Test
     void testImplicitGetAtInStaticMethod() {
         assertScript '''
             class Pippo {
diff --git a/src/test/groovy/bugs/Groovy8947Bug.groovy b/src/test/groovy/bugs/Groovy8947.groovy
similarity index 87%
rename from src/test/groovy/bugs/Groovy8947Bug.groovy
rename to src/test/groovy/bugs/Groovy8947.groovy
index 5c858b3..d7f8c6c 100644
--- a/src/test/groovy/bugs/Groovy8947Bug.groovy
+++ b/src/test/groovy/bugs/Groovy8947.groovy
@@ -18,13 +18,21 @@
  */
 package groovy.bugs
 
-class Groovy8947Bug extends GroovyTestCase {
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import static groovy.test.GroovyAssert.assertScript
+import static groovy.test.GroovyAssert.shouldFail
+
+@CompileStatic
+final class Groovy8947 {
+
+    @Test
     void testResolvingNonStaticInnerClass() {
         assertScript '''
             public class Computer {
                 public class Cpu {
                     int coreNumber
-            
                     public Cpu(int coreNumber) {
                         this.coreNumber = coreNumber
                     }
@@ -33,60 +41,57 @@ class Groovy8947Bug extends GroovyTestCase {
                     return new Computer().new Cpu(coreNumber)
                 }
             }
-            
+
             assert 4 == new Computer().new Cpu(4).coreNumber
-            
             assert 4 == Computer.newCpuInstance(4).coreNumber
             assert 0 == new HashSet(new ArrayList()).size()
         '''
     }
 
+    @Test
     void testResolvingNonStaticInnerClass2() {
         assertScript '''
             public class Computer {
                 public class Cpu {
                     int coreNumber
-            
                     public Cpu(int coreNumber) {
                         this.coreNumber = coreNumber
                     }
                 }
-                
                 static newComputerInstance() {
                     return new Computer()
                 }
-                
                 static newCpuInstance(int coreNumber) {
                     // `new Cpu(coreNumber)` is inside of the outer class `Computer`, so we can resolve `Cpu`
                     return newComputerInstance().new Cpu(coreNumber)
-                } 
+                }
             }
-            
-            assert 4 == Computer.newCpuInstance(4).coreNumber 
+
+            assert 4 == Computer.newCpuInstance(4).coreNumber
         '''
     }
 
+    @Test
     void testResolvingNonStaticInnerClass3() {
-        def errMsg = shouldFail '''
+        def err = shouldFail '''
             public class Computer {
                 public class Cpu {
                     int coreNumber
-            
+
                     public Cpu(int coreNumber) {
                         this.coreNumber = coreNumber
                     }
                 }
             }
-            
             def newComputerInstance() {
                 return new Computer()
             }
-            
-            // `new Cpu(4)` is outside of outer class `Computer` and the return type of `newComputerInstance()` can not be resolved, 
+
+            // `new Cpu(4)` is outside of outer class `Computer` and the return type of `newComputerInstance()` can not be resolved,
             // so we does not support this syntax outside of outer class
-            assert 4 == newComputerInstance().new Cpu(4).coreNumber 
+            assert 4 == newComputerInstance().new Cpu(4).coreNumber
         '''
 
-        assert errMsg.contains('unable to resolve class Cpu')
+        assert err =~ 'unable to resolve class Cpu'
     }
 }
diff --git a/src/test/groovy/bugs/Groovy9215Bug.groovy b/src/test/groovy/bugs/Groovy9215.groovy
similarity index 93%
rename from src/test/groovy/bugs/Groovy9215Bug.groovy
rename to src/test/groovy/bugs/Groovy9215.groovy
index d534515..ebbb695 100644
--- a/src/test/groovy/bugs/Groovy9215Bug.groovy
+++ b/src/test/groovy/bugs/Groovy9215.groovy
@@ -19,12 +19,20 @@
 
 package groovy.bugs
 
-class Groovy9215Bug extends GroovyTestCase {
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import static groovy.test.GroovyAssert.assertScript
+
+@CompileStatic
+final class Groovy9215 {
+
+    @Test
     void testDuplicatedAnnotations1() {
         assertScript '''
             import groovy.transform.CompileStatic
             import groovy.transform.TypeChecked
-            
+
             @TypeChecked
             @CompileStatic
             class Data {
@@ -32,16 +40,16 @@ class Groovy9215Bug extends GroovyTestCase {
                     c("hello")
                 }
             }
-            
+
             @CompileStatic
             @CompileStatic
             class Op {
                 public Data d = new Data()
-            
+
                 void aFunc(Closure c){
                     c()
                 }
-            
+
                 void broken() {
                     aFunc({
                         d.getThing({ String res ->
@@ -50,16 +58,17 @@ class Groovy9215Bug extends GroovyTestCase {
                     })
                 }
             }
-            
+
             assert Op.class
         '''
     }
 
+    @Test
     void testDuplicatedAnnotations2() {
         assertScript '''
             import groovy.transform.CompileStatic
             import groovy.transform.TypeChecked
-            
+
             @TypeChecked
             @CompileStatic
             class Data {
@@ -67,16 +76,16 @@ class Groovy9215Bug extends GroovyTestCase {
                     c("hello")
                 }
             }
-            
+
             @TypeChecked
             @CompileStatic
             class Op {
                 public Data d = new Data()
-            
+
                 void aFunc(Closure c){
                     c()
                 }
-            
+
                 void broken() {
                     aFunc({
                         d.getThing({ String res ->
@@ -85,16 +94,17 @@ class Groovy9215Bug extends GroovyTestCase {
                     })
                 }
             }
-            
+
             assert Op.class
         '''
     }
 
+    @Test
     void testDuplicatedAnnotations3() {
         assertScript '''
             import groovy.transform.CompileStatic
             import groovy.transform.TypeChecked
-            
+
             @TypeChecked
             @CompileStatic
             class Data {
@@ -102,16 +112,16 @@ class Groovy9215Bug extends GroovyTestCase {
                     c("hello")
                 }
             }
-            
+
             @TypeChecked
             @TypeChecked
             class Op {
                 public Data d = new Data()
-            
+
                 void aFunc(Closure c){
                     c()
                 }
-            
+
                 void broken() {
                     aFunc({
                         d.getThing({ String res ->
@@ -120,21 +130,22 @@ class Groovy9215Bug extends GroovyTestCase {
                     })
                 }
             }
-            
+
             assert Op.class
         '''
     }
 
+    @Test
     void testDuplicatedAnnotations4() {
         assertScript '''
             import groovy.transform.CompileDynamic
             import groovy.transform.CompileStatic
             import groovy.transform.TypeChecked
-            
+
             class Person {
                 String name
             }
-            
+
             @CompileStatic  // ignored
             @CompileDynamic // taken effect
             @TypeChecked    // ignored
@@ -143,7 +154,7 @@ class Groovy9215Bug extends GroovyTestCase {
                 def person = new Person(name:"Daniel.Sun")
                 assert "I'm Daniel.Sun" == person.introduce()
             }
-            
+
             x()
         '''
     }
diff --git a/src/test/groovy/bugs/Groovy9217Bug.groovy b/src/test/groovy/bugs/Groovy9217.groovy
similarity index 66%
rename from src/test/groovy/bugs/Groovy9217Bug.groovy
rename to src/test/groovy/bugs/Groovy9217.groovy
index 3d11c93..d8ac56b 100644
--- a/src/test/groovy/bugs/Groovy9217Bug.groovy
+++ b/src/test/groovy/bugs/Groovy9217.groovy
@@ -18,12 +18,21 @@
  */
 package groovy.bugs
 
-// TODO add JVM option `--illegal-access=deny` when all warnings fixed
-class Groovy9217Bug extends GroovyTestCase {
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+// TODO: add JVM option `--illegal-access=deny` when all warnings fixed
+@CompileStatic
+final class Groovy9217 {
+
+    @Test
     void testSetProperty() {
-        HttpURLConnection conn = new URL('http://www.bing.com').openConnection() as HttpURLConnection
-        conn.requestMethod = 'HEAD'
-        assert 'HEAD' == conn.requestMethod
-        conn.disconnect()
+        def conn = new URL('http://www.bing.com').openConnection() as HttpURLConnection
+        try {
+            conn.requestMethod = 'HEAD'
+            assert 'HEAD' == conn.requestMethod
+        } finally {
+            conn.disconnect()
+        }
     }
 }
diff --git a/src/test/groovy/bugs/Groovy9226Bug.groovy b/src/test/groovy/bugs/Groovy9226.groovy
similarity index 89%
rename from src/test/groovy/bugs/Groovy9226Bug.groovy
rename to src/test/groovy/bugs/Groovy9226.groovy
index 30fd05d..a2bb199 100644
--- a/src/test/groovy/bugs/Groovy9226Bug.groovy
+++ b/src/test/groovy/bugs/Groovy9226.groovy
@@ -19,25 +19,32 @@
 
 package groovy.bugs
 
-class Groovy9226Bug extends GroovyTestCase {
+import groovy.transform.CompileStatic
+import org.junit.Test
+
+import static groovy.test.GroovyAssert.assertScript
+
+@CompileStatic
+final class Groovy9226 {
+
+    @Test
     void testDuplicatedAnnotations5() {
         assertScript '''
             import groovy.transform.CompileStatic
             import groovy.transform.TypeChecked
-            
+
             @CompileStatic
             class Super {
               String toString() { 'Super' }
             }
-            
+
             @TypeChecked
             @CompileStatic
             class Child extends Super {
               String toString() { 'Child extends ' + super.toString() }
             }
-            
+
             assert new Child().toString()
         '''
     }
-
 }