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
     {


Reply via email to