blob: a3236f1dd4263899fa6eb1050124a8942cb36345 [file] [log] [blame]
package gls.ch06.s05;
import gls.ch06.s05.testClasses.Tt1cgi;
import gls.ch06.s05.testClasses.Tt1cgo;
import gls.ch06.s05.testClasses.Tt1gi;
import gls.ch06.s05.testClasses.Tt1go;
import gls.ch06.s05.testClasses.Tt1;
import gls.ch06.s05.testClasses.Tt1c;
class GName1Test extends GroovyTestCase {
void testObjectSupportNameHandling() {
Tt1 obj = new Tt1() // Test POJO
def newX = "new x"
def newX1 = "new x1"
def newX2 = "new x2"
assert obj.x == "property"
assert obj.@x == "field"
assert obj.x() == "method"
obj.x = newX
obj.@x = newX1
assert obj.x == newX
assert obj.@x == newX1
obj.setX newX2
assert obj.x == newX2
assert obj.@x == newX1
}
void testObjectSupportNameHandling1() {
Tt1go obj = new Tt1go() // Test class subclassing GroovyObjectSupport
def newX = "new x"
def newX1 = "new x1"
def newX2 = "new x2"
assert obj.x == "property"
assert obj.@x == "field"
assert obj.x() == "method"
obj.x = newX
obj.@x = newX1
assert obj.x == newX
assert obj.@x == newX1
obj.setX newX2
assert obj.x == newX2
assert obj.@x == newX1
}
void testObjectSupportNameHandling2() {
Tt1 obj = new Tt1gi() // Test POJO implementing GroovyObject
def newX = "new x"
def newX1 = "new x1"
def newX2 = "new x2"
assert obj.x == "dynamic property"
assert obj.@x == "field"
assert obj.x() == "dynamic method"
obj.x = newX
obj.@x = newX1
assert obj.x == "dynamic property"
assert obj.@x == newX1
obj.setX newX2
assert obj.x == "dynamic property"
assert obj.@x == newX1
}
void testObjectSupportNameHandlingWitnClosureValues() {
Tt1c obj = new Tt1c() // Test POJO
def newX = {"new x"}
def newX1 = {"new x1"}
def newX2 = {"new x2"}
assert (obj.x)() == "property"
assert obj.@x() == "field"
assert obj.x() == "method"
obj.x = newX
obj.@x = newX1
assert (obj.x)() == newX()
assert obj.@x() == newX1()
obj.setX newX2
assert (obj.x)() == newX2()
assert obj.@x() == newX1()
}
void testObjectSupportNameHandlingWitnClosureValues1() {
Tt1cgo obj = new Tt1cgo() // class subclassing GroovyObjectSupport
def newX = {"new x"}
def newX1 = {"new x1"}
def newX2 = {"new x2"}
assert (obj.x)() == "property"
assert obj.@x() == "field"
assert obj.x() == "method"
obj.x = newX
obj.@x = newX1
assert (obj.x)() == newX()
assert (obj.@x)() == newX1()
obj.setX newX2
assert (obj.x)() == newX2()
assert (obj.@x)() == newX1()
}
void testObjectSupportNameHandlingWitnClosureValues2() {
Tt1c obj = new Tt1cgi() // Test POJO implementing GroovyObject
def newX = {"new x"}
def newX1 = {"new x1"}
def newX2 = {"new x2"}
assert (obj.x)() == "property"
assert (obj.@x)() == "field" // can't write obj.@x() - syntax error
assert obj.x() == "method"
obj.x = newX
obj.@x = newX1
assert (obj.x)() == newX()
assert (obj.@x)() == newX1()
obj.setX newX2
assert (obj.x)() == newX2()
assert (obj.@x)() == newX1()
}
}