package org.codehaus.mojo.setup;
import java.io.File;
import java.util.Properties;
import junit.framework.TestCase;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.MavenExecutionRequest;
public abstract class SetupManagerTestCase
extends TestCase
{
abstract SetupManager getSetupManager();
protected SetupExecutionRequest getSetupExecutionRequest()
{
return new DefaultSetupExecutionRequest();
}
protected MavenExecutionRequest getMavenExecutionRequest()
{
return new DefaultMavenExecutionRequest();
}
public void testPrototype() throws Exception
{
assertNotNull( "getPrototypeInputStream() should not return null", getSetupManager().getPrototypeInputStream() );
}
public void testNullRequest() throws Exception
{
try
{
getSetupManager().process( null );
fail( "SetupManager must fail with a null-request");
}
catch ( SetupExecutionException e )
{
//nop
}
}
public void testEmptyRequest() throws Exception
{
try
{
getSetupManager().process( getSetupExecutionRequest() );
fail( "SetupManager must fail with an empty request");
}
catch ( SetupExecutionException e )
{
//nop
}
}
public void testEmptyAdditionalProperties() throws Exception
{
SetupExecutionRequest request = getSetupExecutionRequest();
request.setAdditionalProperties( new Properties() );
try
{
getSetupManager().process( request );
fail( "SetupManager must fail with an empty additional properties");
}
catch ( SetupExecutionException e )
{
//nop
}
}
public void testDirectoryAsTemplateFile() throws Exception
{
SetupExecutionRequest request = getSetupExecutionRequest();
request.setTemplateFile( new File("/") );
try
{
getSetupManager().process( request );
fail( "SetupManager must fail with a directory as templateFile");
}
catch ( SetupExecutionException e )
{
//nop
}
}
public void testNonexistingTemplateFile() throws Exception
{
SetupExecutionRequest request = getSetupExecutionRequest();
request.setTemplateFile( new File("setup-123.props") );
try
{
getSetupManager().process( request );
fail( "SetupManager must fail when templateFile does not exist");
}
catch ( SetupExecutionException e )
{
//nop
}
}
}