package org.codehaus.mojo.natives;
import java.io.File;
import java.util.List;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
public class NativeSourcesTest
extends PlexusTestCase
{
File workDirectory;
protected void setUp()
throws Exception
{
super.setUp();
workDirectory = new File( getBasedir(), "/target/NativeSourceTest" );
if ( workDirectory.exists() )
{
FileUtils.deleteDirectory( workDirectory );
}
workDirectory.mkdirs();
}
public void testFileNamesOnly()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] fileNames = { "file1.c", "file2.c" };
source.setFileNames( fileNames );
List files = source.getFiles();
assertEquals( 2, files.size() );
}
public void testEmptyIncludes()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] fileNames = { "file1.c", "file2.c" };
source.setFileNames( fileNames );
String[] includes = { "*.c", "*.cpp" };
source.setIncludes( includes );
List files = source.getFiles();
assertEquals( 2, files.size() );
}
// merge include wild card list with fileNames array
public void testMerge()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] fileNames = { "file1.c", "file2.c" };
source.setFileNames( fileNames );
String[] includes = { "*.c", "*.cpp" };
//this file is unique comparing to above list
File nodupFile = new File( this.workDirectory, "file3.c" );
nodupFile.createNewFile();
source.setIncludes( includes );
List files = source.getFiles();
assertEquals( 3, files.size() );
}
public void testDuplicateFiles()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] fileNames = { "file1.c", "file2.c" };
source.setFileNames( fileNames );
String[] includes = { "*.c", "*.cpp" };
File dupFile = new File( this.workDirectory, "file1.c" );
dupFile.createNewFile();
source.setIncludes( includes );
List files = source.getFiles();
assertEquals( 2, files.size() );
}
public void testEmpty()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] includes = { "*.*" };
source.setIncludes( includes );
List files = source.getFiles();
assertEquals( 0, files.size() );
}
public void testGetAllSourceFiles()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] includes = { "*.c", "*.cpp" };
source.setIncludes( includes );
String[] fileNames = { "file1.c", "file2.c" };
source.setFileNames( fileNames );
//this file is unique comparing to above list
File nodupFile = new File( this.workDirectory, "file3.c" );
nodupFile.createNewFile();
NativeSources[] sources = { source, source };
File[] files = NativeSources.getAllSourceFiles( sources );
assertEquals( 6, files.length );
}
public void testEmptyFileNames()
throws Exception
{
NativeSources source = new NativeSources();
source.setDirectory( this.workDirectory );
String[] includes = { "*.c", "*.cpp" };
source.setIncludes( includes );
File someFile = new File( this.workDirectory, "someFile.c" );
someFile.createNewFile();
List files = source.getFiles();
assertEquals( 1, files.size() );
}
}