You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ftpserver-commits@incubator.apache.org by ng...@apache.org on 2007/08/12 11:57:58 UTC

svn commit: r565038 - in /incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem: FileObjectTestTemplate.java NativeFileObjectTest.java

Author: ngn
Date: Sun Aug 12 04:57:57 2007
New Revision: 565038

URL: http://svn.apache.org/viewvc?view=rev&rev=565038
Log:
Refactor file object test to a generic template

Added:
    incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java   (with props)
Modified:
    incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java

Added: incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java?view=auto&rev=565038
==============================================================================
--- incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java (added)
+++ incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java Sun Aug 12 04:57:57 2007
@@ -0,0 +1,93 @@
+package org.apache.ftpserver.filesystem;
+
+
+import junit.framework.TestCase;
+
+import org.apache.ftpserver.ftplet.AuthorizationRequest;
+import org.apache.ftpserver.ftplet.FileObject;
+import org.apache.ftpserver.ftplet.User;
+import org.apache.ftpserver.usermanager.BaseUser;
+
+public abstract class FileObjectTestTemplate extends TestCase {
+
+    protected static final String FILE2_PATH = "/dir1/file2";
+    protected static final String DIR1_PATH = "/dir1";
+    protected static final String DIR1_WITH_SLASH_PATH = "/dir1/";
+    protected static final String FILE1_PATH = "/file1";
+    
+    protected static final User USER = new BaseUser() {
+        public AuthorizationRequest authorize(AuthorizationRequest request) {
+            return request;
+        }
+    };
+
+    public FileObjectTestTemplate() {
+        super();
+    }
+
+    public FileObjectTestTemplate(String name) {
+        super(name);
+    }
+
+    protected abstract FileObject createFile(String fileName, User user);
+    
+    
+    public void testNullFileName() {
+        try{
+            createFile(null, USER);
+            fail("Must throw IllegalArgumentException");
+        } catch(IllegalArgumentException e) {
+            // OK
+        }
+    }
+
+    public void testWhiteSpaceFileName() {
+        try{
+            createFile(" \t", USER);
+           fail("Must throw IllegalArgumentException");
+        } catch(IllegalArgumentException e) {
+            // OK
+        } 
+    }
+    
+    public void testEmptyFileName() {
+        try{
+            createFile("", USER);
+            fail("Must throw IllegalArgumentException");
+        } catch(IllegalArgumentException e) {
+            // OK
+        }
+    }
+
+    public void testNonLeadingSlash() {
+        try{
+            createFile("foo", USER);
+            fail("Must throw IllegalArgumentException");
+        } catch(IllegalArgumentException e) {
+            // OK
+        }
+    }
+
+    public void testFullName() {
+        FileObject fileObject = createFile(FILE2_PATH, USER);
+        assertEquals("/dir1/file2", fileObject.getFullName());
+    
+        fileObject = createFile("/dir1/", USER);
+        assertEquals("/dir1", fileObject.getFullName());
+    
+        fileObject = createFile("/dir1", USER);
+        assertEquals("/dir1", fileObject.getFullName());
+    }
+
+    public void testShortName() {
+        FileObject fileObject = createFile("/dir1/file2", USER);
+        assertEquals("file2", fileObject.getShortName());
+    
+        fileObject = createFile("/dir1/", USER);
+        assertEquals("dir1", fileObject.getShortName());
+    
+        fileObject = createFile("/dir1", USER);
+        assertEquals("dir1", fileObject.getShortName());
+    }
+
+}
\ No newline at end of file

Propchange: incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/FileObjectTestTemplate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java?view=diff&rev=565038&r1=565037&r2=565038
==============================================================================
--- incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java (original)
+++ incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java Sun Aug 12 04:57:57 2007
@@ -21,14 +21,14 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
-import junit.framework.TestCase;
-
-import org.apache.ftpserver.ftplet.AuthorizationRequest;
-import org.apache.ftpserver.usermanager.BaseUser;
+import org.apache.ftpserver.ftplet.FileObject;
+import org.apache.ftpserver.ftplet.User;
 import org.apache.ftpserver.util.IoUtils;
 
-public class NativeFileObjectTest extends TestCase {
+public class NativeFileObjectTest extends FileObjectTestTemplate {
 
     private static final File TEST_TMP_DIR = new File("test-tmp");
     private static final File ROOT_DIR = new File(TEST_TMP_DIR, "ftproot");
@@ -36,6 +36,16 @@
     private static final File TEST_FILE1 = new File(ROOT_DIR, "file1");
     private static final File TEST_FILE2_IN_DIR1 = new File(TEST_DIR1, "file2");
 
+    private static final Map FILE_MAPPINGS = new HashMap();
+    
+    static {
+        FILE_MAPPINGS.put(FILE2_PATH, TEST_FILE2_IN_DIR1);
+        FILE_MAPPINGS.put(DIR1_PATH, TEST_DIR1);
+        FILE_MAPPINGS.put(FILE1_PATH, TEST_FILE1);
+        FILE_MAPPINGS.put(DIR1_WITH_SLASH_PATH, TEST_DIR1);
+        FILE_MAPPINGS.put(" \t", TEST_FILE2_IN_DIR1);
+    }
+    
     private static final String ROOT_DIR_PATH = ROOT_DIR.getAbsolutePath()
             .replace(File.separatorChar, '/');
 
@@ -45,19 +55,6 @@
     private static final String FULL_PATH_NO_CURRDIR = ROOT_DIR_PATH + "/"
             + TEST_FILE2_IN_DIR1.getName();
 
-    public static class AlwaysAuthorizedUser extends BaseUser {
-
-        public AuthorizationRequest authorize(AuthorizationRequest request) {
-            return request;
-        }
-        
-    }
-    
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#setUp()
-     */
     protected void setUp() throws Exception {
         initDirs();
 
@@ -65,6 +62,11 @@
         TEST_FILE1.createNewFile();
         TEST_FILE2_IN_DIR1.createNewFile();
     }
+    
+
+    protected FileObject createFile(String fileName, User user) {
+        return new NativeFileObject(fileName, (File)FILE_MAPPINGS.get(fileName), user);
+    }
 
     public void testGetPhysicalName() {
 
@@ -135,82 +137,15 @@
         
     }
 
-    
-    public void testConstructorWithNullFileName() {
-        try{
-            new NativeFileObject(null, TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-            fail("Must throw IllegalArgumentException");
-        } catch(IllegalArgumentException e) {
-            // OK
-        }
-    }
-
-    public void testEmptyFileName() {
-        try{
-            new NativeFileObject("", TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-            fail("Must throw IllegalArgumentException");
-        } catch(IllegalArgumentException e) {
-            // OK
-        }
-    }
-
-    public void testNonLeadingSlash() {
-        try{
-            new NativeFileObject("foo", TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-            fail("Must throw IllegalArgumentException");
-        } catch(IllegalArgumentException e) {
-            // OK
-        }
-    }
-
-    public void testWhiteSpaceFileName() {
-        try{
-            new NativeFileObject(" \t", TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-            fail("Must throw IllegalArgumentException");
-        } catch(IllegalArgumentException e) {
-            // OK
-        } 
-    }
-
     public void testConstructorWithNullFile() {
         try{
-            new NativeFileObject("foo", null, new AlwaysAuthorizedUser());
+            new NativeFileObject("foo", null, USER);
             fail("Must throw IllegalArgumentException");
         } catch(IllegalArgumentException e) {
             // OK
         }
     }
 
-    
-    public void testFullName() {
-        NativeFileObject fileObject = new NativeFileObject("/dir1/file2",
-                TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("/dir1/file2", fileObject.getFullName());
-
-        fileObject = new NativeFileObject("/dir1/", TEST_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("/dir1", fileObject.getFullName());
-
-        fileObject = new NativeFileObject("/dir1", TEST_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("/dir1", fileObject.getFullName());
-    }
-
-    public void testShortName() {
-        NativeFileObject fileObject = new NativeFileObject("/dir1/file2",
-                TEST_FILE2_IN_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("file2", fileObject.getShortName());
-
-        fileObject = new NativeFileObject("/dir1/", TEST_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("dir1", fileObject.getShortName());
-
-        fileObject = new NativeFileObject("/dir1", TEST_DIR1, new AlwaysAuthorizedUser());
-        assertEquals("dir1", fileObject.getShortName());
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#tearDown()
-     */
     protected void tearDown() throws Exception {
         cleanTmpDirs();
     }
@@ -230,5 +165,6 @@
             IoUtils.delete(TEST_TMP_DIR);
         }
     }
+
 
 }