blob: 3c6e3b80b7d6ddb7d5c21bd50ab122caca5a54c6 [file] [log] [blame]
package groovy
class DynamicMemberTest extends GroovyTestCase {
def aTestMethod(o){o}
def aProperty
public void testGStringMethodCall(){
def name = "aTestMethod"
assert this."$name"(1) == 1
assert this."${name}"(2) == 2
assert "$name"(3) == 3
assert "${name}"(4) == 4
name = "TestMethod"
assert this.("a"+"TestMethod")(5) == 5
assert this.("a"+name)(6) == 6
}
public void testGStringPropertyAccess(){
def name = "aProperty"
this.aProperty = "foo"
assert this."$name" == "foo"
assert this."${name}" == "foo"
assert "$name" == "aProperty"
assert "${name}" == "aProperty"
}
public void testStringMethodCallAndAttributeAccess() {
this.aProperty = "String"
assert this."aProperty" == "String"
assert this."aTestMethod"("String") == "String"
assert "aTestMethod"("String") == "String"
}
public void testDynamicAttributeAccess() {
this.aProperty = "tada"
def name = "aProperty"
assert this.@"$name" == "tada"
assert this.@"${name}" == "tada"
}
public void testDynamicMethodClosure() {
def cl = this.&"aTestMethod"
assert cl("String") == "String"
def name ="aTestMethod"
cl = this.&"$name"
assert cl("String") == "String"
}
}