| package org.codehaus.groovy.classgen |
| |
| class MetaClassTest extends GroovyTestCase { |
| |
| void testMetaClass() { |
| test(this) |
| test { print(it) } |
| } |
| |
| protected def test(object) { |
| def metaClass = object.metaClass |
| assert metaClass != null |
| |
| println(metaClass) |
| |
| def classNode = metaClass.getClassNode() |
| assert classNode != null |
| |
| println(classNode) |
| |
| def name = object.getClass().getName() |
| assert classNode.name == name |
| } |
| |
| void testMetClassDefinition() { |
| assertScript """ |
| class Foo { |
| MetaClass metaClass |
| } |
| def foo = new Foo() |
| assert foo.@metaClass != null |
| """ |
| } |
| } |