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;
     }


Reply via email to