    1   package org.codehaus.groovy.ant;
    2
    3   import java.io.File;
    4
    5   import org.apache.tools.ant.BuildException;
    6   import org.apache.tools.ant.Project;
    7   import org.apache.tools.ant.ProjectHelper;
    8
    9   import groovy.util.GroovyTestCase;
    10
    11  /***
    12   * Unit tests for the {@link Groovy} ant task.
    13   * Caution: the *.groovy files used by this test should not get compiled with the rest of the
    14   * test classes compilation process otherwiser they would be available in the classpath
    15   * and the tests here would be meaningless (tested by testClasspath_missing).
    16   * @author Marc Guillemot
    17   */
    18  public class GroovyTest extends GroovyTestCase {
    19  	public static String FLAG = null;
    20      private final File antFile = new File("src/test/org/codehaus/groovy/ant/GroovyTest.xml");
    21  	private Project project;
    22
    23  	protected void setUp() throws Exception
    24  	{
    25  		super.setUp();
    26  		project = new Project();
    27  		project.init();
    28  		ProjectHelper.getProjectHelper().parse(project, antFile);
    29  		FLAG = null;
    30  	}
    31
    32  	public void testGroovyCodeWithinTag() {
    33  		assertNull(FLAG);
    34  		project.executeTarget("groovyCodeWithinTask");
    35  		assertEquals("from groovy inlined in ant", FLAG);
    36  	}
    37
    38  	public void testGroovyCodeExternalFile() {
    39  		assertNull(FLAG);
    40  		project.executeTarget("groovyCodeInExternalFile");
    41  		assertEquals("from groovy file called from ant", FLAG);
    42  	}
    43
    44  	public void testGroovyCodeInExternalFileWithOtherClass() {
    45  		assertNull(FLAG);
    46  		project.executeTarget("groovyCodeInExternalFileWithOtherClass");
    47  		assertEquals("from GroovyTest2Class.doSomething()", FLAG);
    48  	}
    49
    50  	public void testClasspath_missing() {
    51  		try
    52  		{
    53  			project.executeTarget("groovyClasspath_missing");
    54  			fail();
    55  		}
    56  		catch (final Exception e)
    57  		{
    58  			assertEquals(BuildException.class, e.getClass());
    59  		}
    60
    61  	}
    62
    63  	public void testClasspath_classpathAttribute() {
    64  		assertNull(FLAG);
    65  		project.executeTarget("groovyClasspath_classpathAttribute");
    66  		assertEquals("from groovytest3.GroovyTest3Class.doSomething()", FLAG);
    67  	}
    68
    69  	public void testClasspath_classpathrefAttribute() {
    70  		assertNull(FLAG);
    71  		project.executeTarget("groovyClasspath_classpathrefAttribute");
    72  		assertEquals("from groovytest3.GroovyTest3Class.doSomething()", FLAG);
    73  	}
    74
    75  	public void testClasspath_nestedclasspath() {
    76  		assertNull(FLAG);
    77  		project.executeTarget("groovyClasspath_nestedClasspath");
    78  		assertEquals("from groovytest3.GroovyTest3Class.doSomething()", FLAG);
    79  	}
    80  }