Author: krosenvold
Date: Sat Sep 27 08:30:26 2014
New Revision: 1627932
URL: http://svn.apache.org/r1627932
Log:
[MSHARED-350] Testcase that proves the current implementation is good enough
Modified:
maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/io/DirectoryScannerTest.java
Modified:
maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/io/DirectoryScannerTest.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/io/DirectoryScannerTest.java?rev=1627932&r1=1627931&r2=1627932&view=diff
==============================================================================
---
maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/io/DirectoryScannerTest.java
(original)
+++
maven/shared/trunk/maven-shared-utils/src/test/java/org/apache/maven/shared/utils/io/DirectoryScannerTest.java
Sat Sep 27 08:30:26 2014
@@ -20,10 +20,10 @@ package org.apache.maven.shared.utils.io
*/
import org.apache.maven.shared.utils.testhelpers.FileTestHelper;
+import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
-import org.junit.Assert;
import org.junit.rules.TemporaryFolder;
import java.io.File;
@@ -32,6 +32,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
public class DirectoryScannerTest
{
private static final String[] NONE = new String[0];
@@ -67,7 +70,8 @@ public class DirectoryScannerTest
fitScanTest( true, true, true,
/* includes */ null,
/* excludes */ null,
- /* expInclFiles */ new String[]{ "file1.txt", "file2.txt",
"file3.dat", "folder1/file4.txt", "folder1/file5.dat" },
+ /* expInclFiles */
+ new String[]{ "file1.txt", "file2.txt", "file3.dat",
"folder1/file4.txt", "folder1/file5.dat" },
/* expInclDirs */ new String[]{ "", "folder1" },
/* expNotInclFiles */ NONE,
/* expNotInclDirs */ NONE,
@@ -78,7 +82,8 @@ public class DirectoryScannerTest
fitScanTest( true, false, true,
/* includes */ null,
/* excludes */ null,
- /* expInclFiles */ new String[]{ "file1.txt", "file2.txt",
"file3.dat", "folder1/file4.txt", "folder1/file5.dat" },
+ /* expInclFiles */
+ new String[]{ "file1.txt", "file2.txt", "file3.dat",
"folder1/file4.txt", "folder1/file5.dat" },
/* expInclDirs */ new String[]{ "", "folder1" },
/* expNotInclFiles */ NONE,
/* expNotInclDirs */ NONE,
@@ -115,18 +120,57 @@ public class DirectoryScannerTest
}
@Test
- public void followSymlinks()
+ public void followSymlinksFalse()
{
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir( new File( "src/test/resources/symlinks/src/" ) );
ds.setFollowSymlinks( false );
ds.scan();
List<String> included = Arrays.asList( ds.getIncludedFiles() );
- System.out.println( "includedFiles(nosymlinks) = " + included );
+ assertAlwaysIncluded( included );
+ assertEquals( 9, included.size() );
+ List<String> includedDirs = Arrays.asList( ds.getIncludedDirectories()
);
+ assertTrue( includedDirs.contains( "" ) ); // w00t !
+ assertTrue( includedDirs.contains( "aRegularDir" ) );
+ assertTrue( includedDirs.contains( "symDir" ) );
+ assertTrue( includedDirs.contains( "symLinkToDirOnTheOutside" ) );
+ assertTrue( includedDirs.contains( "targetDir" ) );
+ assertEquals( 5, includedDirs.size() );
+ }
+
+ private void assertAlwaysIncluded( List<String> included )
+ {
+ assertTrue( included.contains( "aRegularDir/aRegularFile.txt" ) );
+ assertTrue( included.contains( "targetDir/targetFile.txt" ) );
+ assertTrue( included.contains( "fileR.txt" ) );
+ assertTrue( included.contains( "fileW.txt" ) );
+ assertTrue( included.contains( "fileX.txt" ) );
+ assertTrue( included.contains( "symR" ) );
+ assertTrue( included.contains( "symW" ) );
+ assertTrue( included.contains( "symX" ) );
+ assertTrue( included.contains( "symLinkToFileOnTheOutside" ) );
+ }
+
+ @Test
+ public void followSymlinks()
+ {
+ DirectoryScanner ds = new DirectoryScanner();
+ ds.setBasedir( new File( "src/test/resources/symlinks/src/" ) );
ds.setFollowSymlinks( true );
ds.scan();
- included = Arrays.asList( ds.getIncludedFiles() );
- System.out.println( " includedFiles(symlinks) = " + included );
+ List<String> included = Arrays.asList( ds.getIncludedFiles() );
+ assertAlwaysIncluded( included );
+ assertTrue( included.contains( "symDir/targetFile.txt" ) );
+ assertTrue( included.contains(
"symLinkToDirOnTheOutside/FileInDirOnTheOutside.txt" ) );
+ assertEquals( 11, included.size() );
+
+ List<String> includedDirs = Arrays.asList( ds.getIncludedDirectories()
);
+ assertTrue( includedDirs.contains( "" ) ); // w00t !
+ assertTrue( includedDirs.contains( "aRegularDir" ) );
+ assertTrue( includedDirs.contains( "symDir" ) );
+ assertTrue( includedDirs.contains( "symLinkToDirOnTheOutside" ) );
+ assertTrue( includedDirs.contains( "targetDir" ) );
+ assertEquals( 5, includedDirs.size() );
}
@Test
@@ -168,15 +212,10 @@ public class DirectoryScannerTest
/**
* Performs a scan and test for the given parameters if not null.
*/
- private void fitScanTest( boolean caseSensitive,
- boolean followSymLinks,
- boolean addDefaultExcludes,
- String[] includes, String[] excludes,
- String[] expectedIncludedFiles,
- String[] expectedIncludedDirectories,
- String[] expectedNotIncludedFiles,
- String[] expectedNotIncludedDirectories,
- String[] expectedExcludedFiles,
+ private void fitScanTest( boolean caseSensitive, boolean followSymLinks,
boolean addDefaultExcludes,
+ String[] includes, String[] excludes, String[]
expectedIncludedFiles,
+ String[] expectedIncludedDirectories, String[]
expectedNotIncludedFiles,
+ String[] expectedNotIncludedDirectories,
String[] expectedExcludedFiles,
String[] expectedExcludedDirectories )
{
DirectoryScanner ds = new DirectoryScanner();
@@ -198,7 +237,7 @@ public class DirectoryScannerTest
ds.setExcludes( excludes );
}
- TestScanConductor scanConductor = new TestScanConductor();
+ TestScanConductor scanConductor = new TestScanConductor();
ds.setScanConductor( scanConductor );
@@ -217,6 +256,7 @@ public class DirectoryScannerTest
/**
* Check if the resolved files match the rules of the expected files.
+ *
* @param expectedFiles
* @param resolvedFiles
*/
@@ -224,16 +264,17 @@ public class DirectoryScannerTest
{
if ( expectedFiles != null )
{
- String msg = category + " expected: " + Arrays.toString(
expectedFiles ) + " but got: " + Arrays.toString( resolvedFiles );
+ String msg = category + " expected: " + Arrays.toString(
expectedFiles ) + " but got: " + Arrays.toString(
+ resolvedFiles );
Assert.assertNotNull( msg, resolvedFiles );
- Assert.assertEquals( msg, expectedFiles.length,
resolvedFiles.length );
+ assertEquals( msg, expectedFiles.length, resolvedFiles.length );
Arrays.sort( expectedFiles );
Arrays.sort( resolvedFiles );
for ( int i = 0; i < resolvedFiles.length; i++ )
{
- Assert.assertEquals( msg, expectedFiles[i],
resolvedFiles[i].replace( "\\", "/" ) );
+ assertEquals( msg, expectedFiles[i], resolvedFiles[i].replace(
"\\", "/" ) );
}
}
}
@@ -245,7 +286,7 @@ public class DirectoryScannerTest
public ScanConductor.ScanAction visitDirectory( String name, File
directory )
{
- Assert.assertTrue( directory.isDirectory() );
+ assertTrue( directory.isDirectory() );
if ( directory.getName().equals( "ignorefolder" ) )
{
@@ -257,7 +298,7 @@ public class DirectoryScannerTest
public ScanConductor.ScanAction visitFile( String name, File file )
{
- Assert.assertTrue( file.isFile() );
+ assertTrue( file.isFile() );
visitedFiles.add( name );
return ScanAction.CONTINUE;
}
@@ -301,12 +342,11 @@ public class DirectoryScannerTest
String[] removedFiles = dsr.getFilesRemoved();
Assert.assertNotNull( addedFiles );
Assert.assertNotNull( removedFiles );
- Assert.assertEquals( 1, addedFiles.length );
- Assert.assertEquals( 2, removedFiles.length );
+ assertEquals( 1, addedFiles.length );
+ assertEquals( 2, removedFiles.length );
}
- @Ignore( "Enable this test to run performance checks" )
- @Test
+ @Ignore( "Enable this test to run performance checks" ) @Test
public void performanceTest()
throws Exception
{