org.codehaus.groovy.grails.compiler.injection.test
Class TestForTransformation

java.lang.Object
  extended by org.codehaus.groovy.grails.compiler.injection.test.TestMixinTransformation
      extended by org.codehaus.groovy.grails.compiler.injection.test.TestForTransformation
All Implemented Interfaces:
org.codehaus.groovy.transform.ASTTransformation
Direct Known Subclasses:
MockTransformation

public class TestForTransformation
extends TestMixinTransformation

Transformation used by the TestFor annotation to signify the class under test.

Since:
2.0

Field Summary
protected static java.util.Map<java.lang.String,java.lang.Class> artefactTypeToTestMap
           
static org.codehaus.groovy.ast.AnnotationNode BEFORE_ANNOTATION
           
static org.codehaus.groovy.ast.ClassNode BEFORE_CLASS_NODE
           
static java.lang.String DOMAIN_TYPE
           
static org.codehaus.groovy.ast.ClassNode GROOVY_TEST_CASE_CLASS
           
static org.codehaus.groovy.ast.AnnotationNode TEST_ANNOTATION
           
 
Fields inherited from class org.codehaus.groovy.grails.compiler.injection.test.TestMixinTransformation
GROOVY_OBJECT_CLASS_NODE, MIXIN_METHOD_ANNOTATION, OBJECT_CLASS, SET_UP_METHOD, SPEC_CLASS, TEAR_DOWN_METHOD, THIS_EXPRESSION
 
Constructor Summary
TestForTransformation()
           
 
Method Summary
protected  org.codehaus.groovy.ast.MethodNode addClassUnderTestMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.ClassExpression targetClass, java.lang.String type)
           
protected  void addMockCollaborator(java.lang.String mockType, org.codehaus.groovy.ast.expr.ClassExpression targetClass, org.codehaus.groovy.ast.stmt.BlockStatement methodBody)
           
 org.codehaus.groovy.grails.core.io.ResourceLocator getResourceLocator()
           
 void testFor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.ClassExpression ce)
          Main entry point for the calling the TestForTransformation programmatically.
 void visit(org.codehaus.groovy.ast.ASTNode[] astNodes, org.codehaus.groovy.control.SourceUnit source)
           
protected  void weaveMixinClass(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class mixinClass)
           
protected  org.codehaus.groovy.ast.MethodNode weaveMock(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.ClassExpression value, boolean isClassUnderTest)
           
 
Methods inherited from class org.codehaus.groovy.grails.compiler.injection.test.TestMixinTransformation
addMethodCallsToMethod, error, getListOfClasses, getOrCreateMethodBody, getOrCreateNoArgsMethodBody, hasAnnotation, hasDeclaredMethod, isAddableMethod, isCandidateMethod, isJunit3Test, isSpockTest, weaveMixinsIntoClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

artefactTypeToTestMap

protected static final java.util.Map<java.lang.String,java.lang.Class> artefactTypeToTestMap

DOMAIN_TYPE

public static final java.lang.String DOMAIN_TYPE
See Also:
Constant Field Values

BEFORE_CLASS_NODE

public static final org.codehaus.groovy.ast.ClassNode BEFORE_CLASS_NODE

BEFORE_ANNOTATION

public static final org.codehaus.groovy.ast.AnnotationNode BEFORE_ANNOTATION

TEST_ANNOTATION

public static final org.codehaus.groovy.ast.AnnotationNode TEST_ANNOTATION

GROOVY_TEST_CASE_CLASS

public static final org.codehaus.groovy.ast.ClassNode GROOVY_TEST_CASE_CLASS
Constructor Detail

TestForTransformation

public TestForTransformation()
Method Detail

getResourceLocator

public org.codehaus.groovy.grails.core.io.ResourceLocator getResourceLocator()

visit

public void visit(org.codehaus.groovy.ast.ASTNode[] astNodes,
                  org.codehaus.groovy.control.SourceUnit source)
Specified by:
visit in interface org.codehaus.groovy.transform.ASTTransformation
Overrides:
visit in class TestMixinTransformation

testFor

public void testFor(org.codehaus.groovy.ast.ClassNode classNode,
                    org.codehaus.groovy.ast.expr.ClassExpression ce)
Main entry point for the calling the TestForTransformation programmatically.

Parameters:
classNode - The class node that represents th test
ce - The class expression that represents the class to test

weaveMock

protected org.codehaus.groovy.ast.MethodNode weaveMock(org.codehaus.groovy.ast.ClassNode classNode,
                                                       org.codehaus.groovy.ast.expr.ClassExpression value,
                                                       boolean isClassUnderTest)

weaveMixinClass

protected void weaveMixinClass(org.codehaus.groovy.ast.ClassNode classNode,
                               java.lang.Class mixinClass)

addClassUnderTestMethod

protected org.codehaus.groovy.ast.MethodNode addClassUnderTestMethod(org.codehaus.groovy.ast.ClassNode classNode,
                                                                     org.codehaus.groovy.ast.expr.ClassExpression targetClass,
                                                                     java.lang.String type)

addMockCollaborator

protected void addMockCollaborator(java.lang.String mockType,
                                   org.codehaus.groovy.ast.expr.ClassExpression targetClass,
                                   org.codehaus.groovy.ast.stmt.BlockStatement methodBody)