You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/07/22 02:09:44 UTC
svn commit: r424502 - in
/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly:
io/DefaultAssemblyReaderTest.java testutils/TestFileManager.java
Author: jdcasey
Date: Fri Jul 21 17:09:43 2006
New Revision: 424502
URL: http://svn.apache.org/viewvc?rev=424502&view=rev
Log:
Finished unit testing the assembly reader.
Modified:
maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java
maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java
Modified: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java?rev=424502&r1=424501&r2=424502&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReaderTest.java Fri Jul 21 17:09:43 2006
@@ -22,6 +22,9 @@
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
@@ -40,7 +43,7 @@
public void setUp()
{
- fileManager = new TestFileManager( "assembly-reader.test." );
+ fileManager = new TestFileManager( "assembly-reader.test.", ".xml" );
mockManager = new MockManager();
configSourceControl = MockControl.createControl( AssemblerConfigurationSource.class );
@@ -712,8 +715,197 @@
Assembly result = new DefaultAssemblyReader().getAssemblyForDescriptorReference( "bin", configSource );
assertEquals( "bin", result.getId() );
-
+
+ mockManager.verifyAll();
+ }
+
+ public void testReadAssemblies_ShouldGetAssemblyDescriptorFromSingleFile()
+ throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ Assembly assembly = new Assembly();
+ assembly.setId( "test" );
+
+ FileSet fs = new FileSet();
+ fs.setDirectory( "/dir" );
+
+ assembly.addFileSet( fs );
+
+ List files = writeAssembliesToFile( Collections.singletonList( assembly ) );
+
+ File assemblyFile = (File) files.get( 0 );
+ File basedir = assemblyFile.getParentFile();
+
+ List assemblies = performReadAssemblies( basedir, assemblyFile, null, null, null, null );
+
+ assertNotNull( assemblies );
+ assertEquals( 1, assemblies.size() );
+
+ Assembly result = (Assembly) assemblies.get( 0 );
+
+ assertEquals( assembly.getId(), result.getId() );
+ }
+
+ public void testReadAssemblies_ShouldGetAssemblyDescriptorFromSingleRef()
+ throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ File basedir = fileManager.createTempDir();
+
+ List assemblies = performReadAssemblies( basedir, null, "bin", null, null, null );
+
+ assertNotNull( assemblies );
+ assertEquals( 1, assemblies.size() );
+
+ Assembly result = (Assembly) assemblies.get( 0 );
+
+ assertEquals( "bin", result.getId() );
+ }
+
+ public void testReadAssemblies_ShouldGetAssemblyDescriptorFromFileArray()
+ throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ Assembly assembly1 = new Assembly();
+ assembly1.setId( "test" );
+
+ Assembly assembly2 = new Assembly();
+ assembly2.setId( "test2" );
+
+ List assemblies = new ArrayList();
+ assemblies.add( assembly1 );
+ assemblies.add( assembly2 );
+
+ List files = writeAssembliesToFile( assemblies );
+
+ File assemblyFile = (File) files.get( 0 );
+ File basedir = assemblyFile.getParentFile();
+
+ List results = performReadAssemblies( basedir, null, null, (File[]) files.toArray( new File[0] ), null, null );
+
+ assertNotNull( results );
+ assertEquals( 2, results.size() );
+
+ Assembly result1 = (Assembly) assemblies.get( 0 );
+
+ assertEquals( assembly1.getId(), result1.getId() );
+
+ Assembly result2 = (Assembly) assemblies.get( 1 );
+
+ assertEquals( assembly2.getId(), result2.getId() );
+ }
+
+ public void testReadAssemblies_ShouldGetAssemblyDescriptorFromMultipleRefs()
+ throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ File basedir = fileManager.createTempDir();
+
+ List assemblies = performReadAssemblies( basedir, null, null, null, new String[] { "bin", "src" }, null );
+
+ assertNotNull( assemblies );
+ assertEquals( 2, assemblies.size() );
+
+ Assembly result = (Assembly) assemblies.get( 0 );
+
+ assertEquals( "bin", result.getId() );
+
+ Assembly result2 = (Assembly) assemblies.get( 1 );
+
+ assertEquals( "src", result2.getId() );
+ }
+
+ public void testReadAssemblies_ShouldGetAssemblyDescriptorFromDirectory()
+ throws IOException, AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ Assembly assembly1 = new Assembly();
+ assembly1.setId( "test" );
+
+ Assembly assembly2 = new Assembly();
+ assembly2.setId( "test2" );
+
+ List assemblies = new ArrayList();
+ assemblies.add( assembly1 );
+ assemblies.add( assembly2 );
+
+ List files = writeAssembliesToFile( assemblies );
+
+ File assemblyFile = (File) files.get( 0 );
+ File basedir = assemblyFile.getParentFile();
+
+ List results = performReadAssemblies( basedir, null, null, null, null, basedir );
+
+ assertNotNull( results );
+ assertEquals( 2, results.size() );
+
+ Assembly result1 = (Assembly) assemblies.get( 0 );
+
+ assertEquals( assembly1.getId(), result1.getId() );
+
+ Assembly result2 = (Assembly) assemblies.get( 1 );
+
+ assertEquals( assembly2.getId(), result2.getId() );
+ }
+
+ private List writeAssembliesToFile( List assemblies )
+ throws IOException
+ {
+ List files = new ArrayList();
+
+ for ( Iterator it = assemblies.iterator(); it.hasNext(); )
+ {
+ Assembly assembly = (Assembly) it.next();
+
+ File assemblyFile = fileManager.createTempFile();
+
+ FileWriter writer = null;
+ try
+ {
+ writer = new FileWriter( assemblyFile );
+ new AssemblyXpp3Writer().write( writer, assembly );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+
+ files.add( assemblyFile );
+ }
+
+ return files;
+ }
+
+ private List performReadAssemblies( File basedir, File descriptor, String descriptorRef, File[] descriptors,
+ String[] descriptorRefs, File descriptorDir )
+ throws AssemblyReadException, InvalidAssemblerConfigurationException
+ {
+ configSource.getDescriptor();
+ configSourceControl.setReturnValue( descriptor );
+
+ configSource.getDescriptorId();
+ configSourceControl.setReturnValue( descriptorRef );
+
+ configSource.getDescriptorReferences();
+ configSourceControl.setReturnValue( descriptorRefs );
+
+ configSource.getDescriptors();
+ configSourceControl.setReturnValue( descriptors );
+
+ configSource.getDescriptorSourceDirectory();
+ configSourceControl.setReturnValue( descriptorDir );
+
+ configSource.getBasedir();
+ configSourceControl.setReturnValue( basedir, MockControl.ONE_OR_MORE );
+
+ configSource.getProject();
+ configSourceControl.setReturnValue( new MavenProject( new Model() ), MockControl.ONE_OR_MORE );
+
+ configSource.isSiteIncluded();
+ configSourceControl.setReturnValue( false, MockControl.ONE_OR_MORE );
+
+ mockManager.replayAll();
+
+ List assemblies = new DefaultAssemblyReader().readAssemblies( configSource );
+
mockManager.verifyAll();
+
+ return assemblies;
}
}
Modified: maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java?rev=424502&r1=424501&r2=424502&view=diff
==============================================================================
--- maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java (original)
+++ maven/plugins/branches/MASSEMBLY-124/src/test/java/org/apache/maven/plugin/assembly/testutils/TestFileManager.java Fri Jul 21 17:09:43 2006
@@ -17,9 +17,12 @@
private final String baseFilename;
- public TestFileManager( String baseFilename )
+ private final String fileSuffix;
+
+ public TestFileManager( String baseFilename, String fileSuffix )
{
this.baseFilename = baseFilename;
+ this.fileSuffix = fileSuffix;
}
public void markForDeletion( File toDelete )
@@ -48,8 +51,9 @@
public synchronized File createTempFile()
throws IOException
{
- File tempFile = File.createTempFile( baseFilename, "" );
+ File tempFile = File.createTempFile( baseFilename, fileSuffix );
tempFile.deleteOnExit();
+ filesToDelete.add( tempFile );
return tempFile;
}