generate plugin descriptor for later comparison with expected content

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1201353 13f79535-47bb-0310-9956-ffa450edef68
master
Herve Boutemy 2011-11-12 23:42:45 +00:00
parent 9f2696c98a
commit 2f5568284f
1 changed files with 47 additions and 10 deletions

View File

@ -29,10 +29,20 @@ import org.apache.maven.tools.plugin.DefaultPluginToolsRequest;
import org.apache.maven.tools.plugin.ExtendedMojoDescriptor; import org.apache.maven.tools.plugin.ExtendedMojoDescriptor;
import org.apache.maven.tools.plugin.PluginToolsRequest; import org.apache.maven.tools.plugin.PluginToolsRequest;
import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor; import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
import org.apache.maven.tools.plugin.generator.Generator;
import org.apache.maven.tools.plugin.generator.PluginDescriptorGenerator;
import org.codehaus.plexus.component.repository.ComponentDependency;
import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
import org.codehaus.plexus.util.xml.XMLWriter;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -41,6 +51,13 @@ import java.util.List;
public class JavaMojoDescriptorExtractorTest public class JavaMojoDescriptorExtractorTest
extends TestCase extends TestCase
{ {
private File root;
protected void setUp()
{
File sourceFile = fileOf( "dir-flag.txt" );
root = sourceFile.getParentFile();
}
private File fileOf( String classpathResource ) private File fileOf( String classpathResource )
{ {
@ -56,28 +73,48 @@ public class JavaMojoDescriptorExtractorTest
return result; return result;
} }
protected List<MojoDescriptor> extract( String directory ) private PluginToolsRequest createRequest( String directory )
throws Exception
{ {
File sourceFile = fileOf( "dir-flag.txt" );
File dir = sourceFile.getParentFile();
Model model = new Model(); Model model = new Model();
model.setArtifactId( "maven-unitTesting-plugin" ); model.setArtifactId( "maven-unitTesting-plugin" );
MavenProject project = new MavenProject( model ); MavenProject project = new MavenProject( model );
project.setFile( new File( dir, "pom.xml" ) ); project.setFile( new File( root, "pom.xml" ) );
project.addCompileSourceRoot( new File( dir, directory ).getPath() ); project.addCompileSourceRoot( new File( root, directory ).getPath() );
PluginDescriptor pluginDescriptor = new PluginDescriptor(); PluginDescriptor pluginDescriptor = new PluginDescriptor();
pluginDescriptor.setGoalPrefix( "test" ); pluginDescriptor.setGoalPrefix( "test" );
pluginDescriptor.setDependencies( new ArrayList<ComponentDependency>() );
PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor ).setEncoding( "UTF-8" ); return new DefaultPluginToolsRequest( project, pluginDescriptor ).setEncoding( "UTF-8" );
}
protected PluginDescriptor generate( String directory )
throws Exception
{
MojoDescriptorExtractor extractor = new JavaMojoDescriptorExtractor(); MojoDescriptorExtractor extractor = new JavaMojoDescriptorExtractor();
PluginToolsRequest request = createRequest( directory );
return extractor.execute( request ); List<MojoDescriptor> mojoDescriptors = extractor.execute( request );
for ( MojoDescriptor mojoDescriptor : mojoDescriptors )
{
request.getPluginDescriptor().addMojo( mojoDescriptor );
}
Generator descriptorGenerator = new PluginDescriptorGenerator();
descriptorGenerator.execute( new File( root, directory ), request );
return request.getPluginDescriptor();
}
@SuppressWarnings( "unchecked" )
protected List<MojoDescriptor> extract( String directory )
throws Exception
{
return generate( directory ).getMojos();
} }
public void testShouldFindTwoMojoDescriptorsInTestSourceDirectory() public void testShouldFindTwoMojoDescriptorsInTestSourceDirectory()
@ -137,7 +174,7 @@ public class JavaMojoDescriptorExtractorTest
{ {
List<MojoDescriptor> results = extract( "source3" ); List<MojoDescriptor> results = extract( "source3" );
assertEquals( 0, results.size() ); assertNull( results );
} }
/** /**