Browse Source

* Added AbstractProjectTest, which allows a sub-class test case to execute

targets from project files.

* AbstractMyrmidonTest.getTestResource() now asserts that the resource exists.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271458 13f79535-47bb-0310-9956-ffa450edef68
master
adammurdoch 23 years ago
parent
commit
6fe669441d
10 changed files with 188 additions and 84 deletions
  1. +5
    -3
      proposal/myrmidon/src/test/org/apache/myrmidon/AbstractMyrmidonTest.java
  2. +80
    -0
      proposal/myrmidon/src/test/org/apache/myrmidon/AbstractProjectTest.java
  3. +0
    -2
      proposal/myrmidon/src/test/org/apache/myrmidon/components/deployer/DefaultDeployerTest.java
  4. +9
    -36
      proposal/myrmidon/src/test/org/apache/myrmidon/components/embeddor/DefaultEmbeddorTest.java
  5. +0
    -1
      proposal/myrmidon/src/test/org/apache/myrmidon/interfaces/type/TypeFactoryTest.java
  6. +5
    -3
      proposal/myrmidon/src/testcases/org/apache/myrmidon/AbstractMyrmidonTest.java
  7. +80
    -0
      proposal/myrmidon/src/testcases/org/apache/myrmidon/AbstractProjectTest.java
  8. +0
    -2
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/deployer/DefaultDeployerTest.java
  9. +9
    -36
      proposal/myrmidon/src/testcases/org/apache/myrmidon/components/embeddor/DefaultEmbeddorTest.java
  10. +0
    -1
      proposal/myrmidon/src/testcases/org/apache/myrmidon/interfaces/type/TypeFactoryTest.java

+ 5
- 3
proposal/myrmidon/src/test/org/apache/myrmidon/AbstractMyrmidonTest.java View File

@@ -45,12 +45,14 @@ public abstract class AbstractMyrmidonTest
}

/**
* Locates a test resource.
* Locates a test resource, and asserts that the resource exists
*/
protected File getTestResource( final String name )
{
final File file = new File( m_testBaseDir, name );
return getCanonicalFile( file );
File file = new File( m_testBaseDir, name );
file = getCanonicalFile( file );
assertTrue( "Test file \"" + file + "\" does not exist.", file.exists() );
return file;
}

/**


+ 80
- 0
proposal/myrmidon/src/test/org/apache/myrmidon/AbstractProjectTest.java View File

@@ -0,0 +1,80 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon;

import java.io.File;
import org.apache.myrmidon.components.embeddor.DefaultEmbeddor;
import org.apache.myrmidon.interfaces.embeddor.Embeddor;
import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;

/**
* A base class for test cases which need to execute projects.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision$ $Date$
*/
public class AbstractProjectTest
extends AbstractMyrmidonTest
{
private DefaultEmbeddor m_embeddor;

public AbstractProjectTest( final String name )
{
super( name );
}

/**
* Tear-down the test.
*/
protected void tearDown() throws Exception
{
if( m_embeddor != null )
{
m_embeddor.dispose();
m_embeddor = null;
}
}

/**
* Returns an embeddor which can be used to build and execute projects.
*/
protected Embeddor getEmbeddor() throws Exception
{
if( m_embeddor == null )
{
final Logger logger = createLogger();
m_embeddor = new DefaultEmbeddor();
m_embeddor.enableLogging( logger );

final Parameters params = new Parameters();
final File instDir = getHomeDirectory();
params.setParameter( "myrmidon.home", instDir.getAbsolutePath() );
m_embeddor.parameterize( params );
m_embeddor.initialize();
m_embeddor.start();
}

return m_embeddor;
}

/**
* Executes a target in a project, and asserts that it does not fail
*/
protected void executeTarget( final File projectFile, final String targetName )
throws Exception
{
final Embeddor embeddor = getEmbeddor();
final Project project = embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final Workspace workspace = embeddor.createWorkspace( new Parameters() );

workspace.executeProject( project, targetName );
}
}

+ 0
- 2
proposal/myrmidon/src/test/org/apache/myrmidon/components/deployer/DefaultDeployerTest.java View File

@@ -119,8 +119,6 @@ public class DefaultDeployerTest
public void testLibDescriptor() throws Exception
{
final File typelib = getTestResource( "test.atl" );
assertTrue( "File " + typelib + " does not exist", typelib.exists() );

final TypeDeployer typeDeployer = m_deployer.createDeployer( typelib );

// Make sure the test types have not been deployed


+ 9
- 36
proposal/myrmidon/src/test/org/apache/myrmidon/components/embeddor/DefaultEmbeddorTest.java View File

@@ -12,9 +12,11 @@ import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.AbstractMyrmidonTest;
import org.apache.myrmidon.TrackingProjectListener;
import org.apache.myrmidon.AbstractProjectTest;
import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.model.Target;
import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.myrmidon.interfaces.embeddor.Embeddor;
import org.apache.myrmidon.listeners.ProjectListener;

/**
@@ -24,51 +26,21 @@ import org.apache.myrmidon.listeners.ProjectListener;
* @version $Revision$ $Date$
*/
public class DefaultEmbeddorTest
extends AbstractMyrmidonTest
extends AbstractProjectTest
{
private DefaultEmbeddor m_embeddor;

public DefaultEmbeddorTest( String name )
{
super( name );
}

/**
* Setup the test, by creating and initialising the embeddor.
*/
protected void setUp() throws Exception
{
final Logger logger = createLogger();
m_embeddor = new DefaultEmbeddor();
m_embeddor.enableLogging( logger );

final Parameters params = new Parameters();
final File instDir = getHomeDirectory();
params.setParameter( "myrmidon.home", instDir.getAbsolutePath() );
m_embeddor.parameterize( params );
m_embeddor.initialize();
m_embeddor.start();
}

/**
* Tear-down the test.
*/
protected void tearDown() throws Exception
{
m_embeddor.dispose();
m_embeddor = null;
}

/**
* Tests that a project is successfully built from a file.
*/
public void testProjectBuilder() throws Exception
{
final File projectFile = getTestResource( "project-builder.ant" );
assertTrue( "Project file \"" + projectFile + "\" does not exist.", projectFile.exists() );

// Build the project
final Project project = m_embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final File projectFile = getTestResource( "project-builder.ant" );
final Project project = getEmbeddor().createProject( projectFile.getAbsolutePath(), null, null );

// Verify the project.
assertEquals( "test-project", project.getProjectName() );
@@ -92,7 +64,7 @@ public class DefaultEmbeddorTest
*/
public void testCreateListener() throws Exception
{
final ProjectListener listener = m_embeddor.createListener( "default" );
final ProjectListener listener = getEmbeddor().createListener( "default" );
}

/**
@@ -102,10 +74,11 @@ public class DefaultEmbeddorTest
{
// Build the project
final File projectFile = getTestResource( "project-builder.ant" );
final Project project = m_embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final Embeddor embeddor = getEmbeddor();
final Project project = embeddor.createProject( projectFile.getAbsolutePath(), null, null );

// Build the workspace
final Workspace workspace = m_embeddor.createWorkspace( new Parameters() );
final Workspace workspace = embeddor.createWorkspace( new Parameters() );

// Install a listener
final TrackingProjectListener listener = new TrackingProjectListener();


+ 0
- 1
proposal/myrmidon/src/test/org/apache/myrmidon/interfaces/type/TypeFactoryTest.java View File

@@ -63,7 +63,6 @@ public class TypeFactoryTest
throws Exception
{
final File file = getTestResource( "types.jar" );
assertTrue( "Support Jar " + file + " exists", file.exists() );

final URL[] classpath = new URL[]{file.toURL()};
final ReloadingTypeFactory factory = new ReloadingTypeFactory( classpath, null );


+ 5
- 3
proposal/myrmidon/src/testcases/org/apache/myrmidon/AbstractMyrmidonTest.java View File

@@ -45,12 +45,14 @@ public abstract class AbstractMyrmidonTest
}

/**
* Locates a test resource.
* Locates a test resource, and asserts that the resource exists
*/
protected File getTestResource( final String name )
{
final File file = new File( m_testBaseDir, name );
return getCanonicalFile( file );
File file = new File( m_testBaseDir, name );
file = getCanonicalFile( file );
assertTrue( "Test file \"" + file + "\" does not exist.", file.exists() );
return file;
}

/**


+ 80
- 0
proposal/myrmidon/src/testcases/org/apache/myrmidon/AbstractProjectTest.java View File

@@ -0,0 +1,80 @@
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.myrmidon;

import java.io.File;
import org.apache.myrmidon.components.embeddor.DefaultEmbeddor;
import org.apache.myrmidon.interfaces.embeddor.Embeddor;
import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;

/**
* A base class for test cases which need to execute projects.
*
* @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
* @version $Revision$ $Date$
*/
public class AbstractProjectTest
extends AbstractMyrmidonTest
{
private DefaultEmbeddor m_embeddor;

public AbstractProjectTest( final String name )
{
super( name );
}

/**
* Tear-down the test.
*/
protected void tearDown() throws Exception
{
if( m_embeddor != null )
{
m_embeddor.dispose();
m_embeddor = null;
}
}

/**
* Returns an embeddor which can be used to build and execute projects.
*/
protected Embeddor getEmbeddor() throws Exception
{
if( m_embeddor == null )
{
final Logger logger = createLogger();
m_embeddor = new DefaultEmbeddor();
m_embeddor.enableLogging( logger );

final Parameters params = new Parameters();
final File instDir = getHomeDirectory();
params.setParameter( "myrmidon.home", instDir.getAbsolutePath() );
m_embeddor.parameterize( params );
m_embeddor.initialize();
m_embeddor.start();
}

return m_embeddor;
}

/**
* Executes a target in a project, and asserts that it does not fail
*/
protected void executeTarget( final File projectFile, final String targetName )
throws Exception
{
final Embeddor embeddor = getEmbeddor();
final Project project = embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final Workspace workspace = embeddor.createWorkspace( new Parameters() );

workspace.executeProject( project, targetName );
}
}

+ 0
- 2
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/deployer/DefaultDeployerTest.java View File

@@ -119,8 +119,6 @@ public class DefaultDeployerTest
public void testLibDescriptor() throws Exception
{
final File typelib = getTestResource( "test.atl" );
assertTrue( "File " + typelib + " does not exist", typelib.exists() );

final TypeDeployer typeDeployer = m_deployer.createDeployer( typelib );

// Make sure the test types have not been deployed


+ 9
- 36
proposal/myrmidon/src/testcases/org/apache/myrmidon/components/embeddor/DefaultEmbeddorTest.java View File

@@ -12,9 +12,11 @@ import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.myrmidon.AbstractMyrmidonTest;
import org.apache.myrmidon.TrackingProjectListener;
import org.apache.myrmidon.AbstractProjectTest;
import org.apache.myrmidon.interfaces.model.Project;
import org.apache.myrmidon.interfaces.model.Target;
import org.apache.myrmidon.interfaces.workspace.Workspace;
import org.apache.myrmidon.interfaces.embeddor.Embeddor;
import org.apache.myrmidon.listeners.ProjectListener;

/**
@@ -24,51 +26,21 @@ import org.apache.myrmidon.listeners.ProjectListener;
* @version $Revision$ $Date$
*/
public class DefaultEmbeddorTest
extends AbstractMyrmidonTest
extends AbstractProjectTest
{
private DefaultEmbeddor m_embeddor;

public DefaultEmbeddorTest( String name )
{
super( name );
}

/**
* Setup the test, by creating and initialising the embeddor.
*/
protected void setUp() throws Exception
{
final Logger logger = createLogger();
m_embeddor = new DefaultEmbeddor();
m_embeddor.enableLogging( logger );

final Parameters params = new Parameters();
final File instDir = getHomeDirectory();
params.setParameter( "myrmidon.home", instDir.getAbsolutePath() );
m_embeddor.parameterize( params );
m_embeddor.initialize();
m_embeddor.start();
}

/**
* Tear-down the test.
*/
protected void tearDown() throws Exception
{
m_embeddor.dispose();
m_embeddor = null;
}

/**
* Tests that a project is successfully built from a file.
*/
public void testProjectBuilder() throws Exception
{
final File projectFile = getTestResource( "project-builder.ant" );
assertTrue( "Project file \"" + projectFile + "\" does not exist.", projectFile.exists() );

// Build the project
final Project project = m_embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final File projectFile = getTestResource( "project-builder.ant" );
final Project project = getEmbeddor().createProject( projectFile.getAbsolutePath(), null, null );

// Verify the project.
assertEquals( "test-project", project.getProjectName() );
@@ -92,7 +64,7 @@ public class DefaultEmbeddorTest
*/
public void testCreateListener() throws Exception
{
final ProjectListener listener = m_embeddor.createListener( "default" );
final ProjectListener listener = getEmbeddor().createListener( "default" );
}

/**
@@ -102,10 +74,11 @@ public class DefaultEmbeddorTest
{
// Build the project
final File projectFile = getTestResource( "project-builder.ant" );
final Project project = m_embeddor.createProject( projectFile.getAbsolutePath(), null, null );
final Embeddor embeddor = getEmbeddor();
final Project project = embeddor.createProject( projectFile.getAbsolutePath(), null, null );

// Build the workspace
final Workspace workspace = m_embeddor.createWorkspace( new Parameters() );
final Workspace workspace = embeddor.createWorkspace( new Parameters() );

// Install a listener
final TrackingProjectListener listener = new TrackingProjectListener();


+ 0
- 1
proposal/myrmidon/src/testcases/org/apache/myrmidon/interfaces/type/TypeFactoryTest.java View File

@@ -63,7 +63,6 @@ public class TypeFactoryTest
throws Exception
{
final File file = getTestResource( "types.jar" );
assertTrue( "Support Jar " + file + " exists", file.exists() );

final URL[] classpath = new URL[]{file.toURL()};
final ReloadingTypeFactory factory = new ReloadingTypeFactory( classpath, null );


Loading…
Cancel
Save