| /** |
| * ConstructorThisCallBug.groovy |
| * |
| * Test Script for the Jira issue: GROOVY-994. |
| * |
| * @author Pilho Kim |
| * @date 2005.08.05.06.21 |
| */ |
| |
| package groovy.bugs |
| |
| public class ConstructorThisCallBug extends GroovyTestCase { |
| public void testCallA() { |
| println "Testing for a class without call()" |
| def a1 = new ConstructorCallA("foo") |
| def a2 = new ConstructorCallA(9) |
| def a3 = new ConstructorCallA() |
| } |
| |
| void testCallB() { |
| println "Testing for a class with call()" |
| def b1 = new ConstructorCallB('bar') |
| def b2 = new ConstructorCallB(9) |
| def b3 = new ConstructorCallB() |
| } |
| } |
| |
| public class ConstructorCallA { |
| public ConstructorCallA() { |
| this(19) // call another constructor |
| println "(1) no argument consructor" |
| } |
| |
| public ConstructorCallA(String a) { |
| println "(2) String value a = $a" |
| } |
| |
| public ConstructorCallA(int a) { |
| this("" + (a*a)) // call another constructor |
| println "(3) int value a = $a" |
| } |
| } |
| |
| public class ConstructorCallB { |
| public ConstructorCallB() { |
| println '1: no argument consructor' |
| this(19) // call the method call() |
| } |
| |
| public ConstructorCallB(String b) { |
| println """2: String value b = $b""" |
| } |
| |
| public ConstructorCallB(int b) { |
| println """3: int value b = $b""" |
| this('' + (b + b)) // call the method call() |
| } |
| |
| void call(Object o) { |
| println "Hello, $o" |
| } |
| } |