You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by br...@apache.org on 2002/08/06 22:32:05 UTC

cvs commit: jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser FTPParseTestFramework.java NTFTPEntryParserTest.java OS2FTPEntryParserTest.java UnixFTPEntryParserTest.java VMSFTPEntryParserTest.java

brekke      2002/08/06 13:32:05

  Modified:    net/src/java/org/apache/commons/net/ftp/ftp2/parser
                        UnixFTPEntryParser.java VMSFTPEntryParser.java
               net/src/test/org/apache/commons/net/ftp/ftp2/parser
                        FTPParseTestFramework.java
                        NTFTPEntryParserTest.java
                        OS2FTPEntryParserTest.java
                        UnixFTPEntryParserTest.java
                        VMSFTPEntryParserTest.java
  Log:
  o Fixed problem with the UnixParser's regular expression and determining
  file types.  It wasn't working when a - was used.
  
  o Fixed a problem with the VMSParser not properly getting the group name.
  
  o Changed around the tests for the parsers.  The abstract test case now
  actually contains tests that all parsers must pass.  There are abstract
  methods that children must implement to give the parent listing data.
  
  o Added tests for all fields parsed to the Unix and VMS parsers.  VMS still
  doesn't parse out the permissions at this time.
  
  Revision  Changes    Path
  1.4       +13 -12    jakarta-commons-sandbox/net/src/java/org/apache/commons/net/ftp/ftp2/parser/UnixFTPEntryParser.java
  
  Index: UnixFTPEntryParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/java/org/apache/commons/net/ftp/ftp2/parser/UnixFTPEntryParser.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UnixFTPEntryParser.java	3 May 2002 14:52:30 -0000	1.3
  +++ UnixFTPEntryParser.java	6 Aug 2002 20:32:04 -0000	1.4
  @@ -71,16 +71,16 @@
       private static final String MONTHS =
           "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)";
       private static final String REGEX =
  -        "([bcdlf])"
  -        + "(((r|-)(w|-)(x|-))((r|-)(w|-)(x|-))((r|-)(w|-)(x|-)))\\s*"
  -        + "(\\d*)\\s*"
  -        + "(\\S*)\\s*"
  -        + "(\\S*)\\s*"
  -        + "(\\d*)\\s*"
  -        + MONTHS + "\\s*"
  -        + "((?:[012]\\d*)|(?:3[01]))\\s*"
  +        "([bcdlf-])"
  +        + "(((r|-)(w|-)(x|-))((r|-)(w|-)(x|-))((r|-)(w|-)(x|-)))\\s+"
  +        + "(\\d+)\\s+"
  +        + "(\\S+)\\s+"
  +        + "(\\S+)\\s+"
  +        + "(\\d+)\\s+"
  +        + MONTHS + "\\s+"
  +        + "((?:[012]\\d*)|(?:3[01]))\\s+"
           + "((\\d\\d\\d\\d)|((?:[01]\\d)|(?:2[0123])):([012345]\\d))\\s"
  -        + "(\\S*)(\\s*.*)";
  +        + "(\\S+)(\\s*.*)";
   
       
       /**
  @@ -129,7 +129,6 @@
               String name = group(25);
               String endtoken = group(26);
   
  -
               switch (typeStr.charAt(0))
               {
               case 'd':
  @@ -145,6 +144,9 @@
               default:
                   type = FTPFile.FILE_TYPE;
               }
  +
  +            file.setType(type);
  +           
               int g = 4;
               for (int access = 0; access < 3; access++, g += 4)
               {
  @@ -251,7 +253,6 @@
               }
               return file;
           }
  -
           return null;
       }
   }
  
  
  
  1.5       +2 -2      jakarta-commons-sandbox/net/src/java/org/apache/commons/net/ftp/ftp2/parser/VMSFTPEntryParser.java
  
  Index: VMSFTPEntryParser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/java/org/apache/commons/net/ftp/ftp2/parser/VMSFTPEntryParser.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- VMSFTPEntryParser.java	6 Aug 2002 15:23:37 -0000	1.4
  +++ VMSFTPEntryParser.java	6 Aug 2002 20:32:04 -0000	1.5
  @@ -127,7 +127,7 @@
           MONTHS +
           "-([0-9]{4})\\s*" +
           "((?:[01]\\d)|(?:2[0-3])):([012345]\\d):([012345]\\d)\\s*" +
  -        "(\\[[0-9$A-Za-z_]+),([0-9$a-zA-Z_]+)\\]\\s*" +
  +        "\\[([0-9$A-Za-z_]+),([0-9$a-zA-Z_]+)\\]\\s*" +
           "(\\([a-zA-Z]*,[a-zA-Z]*,[a-zA-Z]*,[a-zA-Z]*\\))";
   
   
  
  
  
  1.2       +33 -21    jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/FTPParseTestFramework.java
  
  Index: FTPParseTestFramework.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/FTPParseTestFramework.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FTPParseTestFramework.java	29 Apr 2002 03:55:32 -0000	1.1
  +++ FTPParseTestFramework.java	6 Aug 2002 20:32:04 -0000	1.2
  @@ -53,48 +53,60 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    */
  -
   import junit.framework.TestCase;
  +
   import org.apache.commons.net.ftp.FTPFile;
   import org.apache.commons.net.ftp.ftp2.FTPFileEntryParser;
   
   /**
  - * FTPParseTestFramework.java
  - * This provides a basic framework for pass-fail testing of
  - * sample FTP directory strings in a particular format.
  - *
    * @author <a href="mailto:stevecoh1@attbi.com">Steve Cohen</a>
    * @version $Id$
    */
  -
   public abstract class FTPParseTestFramework extends TestCase
   {
  -    FTPFileEntryParser parser;
   
  -    public FTPParseTestFramework (String name, FTPFileEntryParser parser)
  +    private FTPFileEntryParser parser = null;
  +
  +    public FTPParseTestFramework(String name)
       {
           super(name);
  -        this.parser = parser;
       }
   
  -    protected void _testPositive(String[] goodsamples) throws Exception
  +    public void testBadListing() throws Exception
       {
  -        for (int i = 0; i < goodsamples.length; i++)
  +
  +        String[] badsamples = getBadListing();
  +        for (int i = 0; i < badsamples.length; i++)
           {
  -            String test = goodsamples[i];
  -            FTPFile f = this.parser.parseFTPEntry(test);
  -            assertNotNull( "Failed to parse " + test, f);
  +
  +            String test = badsamples[i];
  +            FTPFile f = parser.parseFTPEntry(test);
  +            assertNull("Should have Failed to parse " + test, 
  +                       f);
           }
       }
   
  -    protected void _testNegative(String[] badsamples) throws Exception
  +    public void testGoodListing() throws Exception
       {
  -        for (int i = 0; i < badsamples.length; i++)
  +
  +        String[] goodsamples = getGoodListing();
  +        for (int i = 0; i < goodsamples.length; i++)
           {
  -            String test = badsamples[i];
  -            FTPFile f = this.parser.parseFTPEntry(test);
  -            assertNull( "Should have Failed to parse " + test, f);
  +
  +            String test = goodsamples[i];
  +            FTPFile f = parser.parseFTPEntry(test);
  +            assertNotNull("Failed to parse " + test, 
  +                          f);
           }
       }
   
  -}
  +    protected abstract String[] getBadListing();
  +    protected abstract String[] getGoodListing();
  +    protected abstract FTPFileEntryParser getParser();
  +
  +    protected void setUp() throws Exception
  +    {
  +        super.setUp();
  +        parser = getParser();
  +    }
  +}
  \ No newline at end of file
  
  
  
  1.2       +20 -9     jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/NTFTPEntryParserTest.java
  
  Index: NTFTPEntryParserTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/NTFTPEntryParserTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NTFTPEntryParserTest.java	29 Apr 2002 03:55:32 -0000	1.1
  +++ NTFTPEntryParserTest.java	6 Aug 2002 20:32:04 -0000	1.2
  @@ -54,10 +54,11 @@
    * <http://www.apache.org/>.
    */
   
  +import org.apache.commons.net.ftp.ftp2.FTPFileEntryParser;
  +
  +import junit.framework.TestSuite;
  +
   /**
  - * NTFTPEntryParserTest.java
  - * Tests the NTFTPEntryParser
  - *
    * @author <a href="mailto:scohen@stevecoh1@attbi.com">Steve Cohen</a>
    * @versionn $Id$
    */
  @@ -89,16 +90,26 @@
   
       public NTFTPEntryParserTest (String name)
       {
  -        super(name, new NTFTPEntryParser());
  +        super(name);
       }
   
  -    public void testPositive() throws Exception
  +    protected String[] getGoodListing()
       {
  -        _testPositive(goodsamples);
  +        return(goodsamples);
       }
  -    public void testNegative() throws Exception
  +    
  +    protected String[] getBadListing()
       {
  -        _testNegative(badsamples);
  +        return(badsamples);
  +    }
   
  +    protected FTPFileEntryParser getParser()
  +    {
  +        return(new NTFTPEntryParser());
  +    }
  +    
  +    public static TestSuite suite()
  +    {
  +        return(new TestSuite(NTFTPEntryParserTest.class));
       }
   }
  
  
  
  1.2       +22 -10    jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/OS2FTPEntryParserTest.java
  
  Index: OS2FTPEntryParserTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/OS2FTPEntryParserTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- OS2FTPEntryParserTest.java	29 Apr 2002 03:55:32 -0000	1.1
  +++ OS2FTPEntryParserTest.java	6 Aug 2002 20:32:04 -0000	1.2
  @@ -54,10 +54,11 @@
    * <http://www.apache.org/>.
    */
   
  +import junit.framework.TestSuite;
  +
  +import org.apache.commons.net.ftp.ftp2.FTPFileEntryParser;
  +
   /**
  - * OS2FTPEntryParserTest.java
  - * Tests the OS2FTPEntryParser
  - *
    * @author <a href="mailto:scohen@stevecoh1@attbi.com">Steve Cohen</a>
    * @version $Id$
    */
  @@ -94,16 +95,27 @@
   
       public OS2FTPEntryParserTest (String name)
       {
  -        super(name, new OS2FTPEntryParser());
  +        super(name);
       }
   
  -    public void testPositive() throws Exception
  +    protected String[] getGoodListing()
       {
  -        _testPositive(goodsamples);
  +        return(goodsamples);
       }
  -    public void testNegative() throws Exception
  +    
  +    protected String[] getBadListing()
       {
  -        _testNegative(badsamples);
  -
  +        return(badsamples);
  +    }
  +    
  +    protected FTPFileEntryParser getParser()
  +    {
  +        return(new OS2FTPEntryParser());
  +    }
  +    
  +    public static TestSuite suite()
  +    {
  +        return(new TestSuite(OS2FTPEntryParserTest.class));
       }
  +    
   }
  
  
  
  1.2       +132 -37   jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/UnixFTPEntryParserTest.java
  
  Index: UnixFTPEntryParserTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/UnixFTPEntryParserTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UnixFTPEntryParserTest.java	29 Apr 2002 03:55:32 -0000	1.1
  +++ UnixFTPEntryParserTest.java	6 Aug 2002 20:32:05 -0000	1.2
  @@ -54,56 +54,151 @@
    * <http://www.apache.org/>.
    */
   
  +import junit.framework.TestSuite;
  +
  +import org.apache.commons.net.ftp.FTPFile;
  +import org.apache.commons.net.ftp.ftp2.FTPFileEntryParser;
  +
   /**
  - * UnixFTPEntryParserTest.java
  - * Tests the UnixFTPEntryParser
  - *
    * @author <a href="mailto:scohen@stevecoh1@attbi.com">Steve Cohen</a>
    * @versionn $Id$
    */
   public class UnixFTPEntryParserTest extends FTPParseTestFramework
   {
  -    private static final String[] goodsamples = {
  -                "drwxr-xr-x   2 root     root         4096 Mar  2 15:13 zxbox",
  -                "drwxr-xr-x   2 root     root         4096 Aug 24  2001 zxjdbc",
  -                "drwxr-xr-x   2 root     root         4096 Jan  4 00:03 zziplib",
  -                "drwxr-xr-x   2 root     99           4096 Feb 23  2001 zzplayer",
  -                "drwxr-xr-x   2 root     root         4096 Aug  6  2001 zztpp",
  -                "-rw-r--r--   1 14       staff       80284 Aug 22  2000 zxJDBC-1.2.3.tar.gz",
  -                "-rw-r--r--   1 14       staff      119926 Aug 22  2000 zxJDBC-1.2.3.zip",
  -                "-rw-r--r--   1 ftp      nogroup     83853 Jan 22  2001 zxJDBC-1.2.4.tar.gz",
  -                "-rw-r--r--   1 ftp      nogroup    126552 Jan 22  2001 zxJDBC-1.2.4.zip",
  -                "-rw-r--r--   1 root     root       111325 Apr 27  2001 zxJDBC-2.0.1b1.tar.gz",
  -                "-rw-r--r--   1 root     root       190144 Apr 27  2001 zxJDBC-2.0.1b1.zip"
  -            };
  -    private static final String[] badsamples = {
  -                "zrwxr-xr-x   2 root     root         4096 Mar  2 15:13 zxbox",
  -                "dxrwr-xr-x   2 root     root         4096 Aug 24  2001 zxjdbc",
  -                "drwxr-xr-x   2 root     root         4096 Jam  4 00:03 zziplib",
  -                "drwxr-xr-x   2 root     99           4096 Feb 23 30:01 zzplayer",
  -                "drwxr-xr-x   2 root     root         4096 Aug 36  2001 zztpp",
  -                "-rw-r--r--   1 14       staff       80284 Aug 22  zxJDBC-1.2.3.tar.gz",
  -                "-rw-r--r--   1 14       staff      119:26 Aug 22  2000 zxJDBC-1.2.3.zip",
  -                "-rw-r--r--   1 ftp      no group    83853 Jan 22  2001 zxJDBC-1.2.4.tar.gz",
  -                "-rw-r--r--   1ftp       nogroup    126552 Jan 22  2001 zxJDBC-1.2.4.zip",
  -                "-rw-r--r--   1 root     root       111325 Apr -7 18:79 zxJDBC-2.0.1b1.tar.gz",
  -            };
  -
   
  +    private static final String[] badsamples = 
  +    {
  +        "zrwxr-xr-x   2 root     root         4096 Mar  2 15:13 zxbox", 
  +        "dxrwr-xr-x   2 root     root         4096 Aug 24  2001 zxjdbc", 
  +        "drwxr-xr-x   2 root     root         4096 Jam  4 00:03 zziplib", 
  +        "drwxr-xr-x   2 root     99           4096 Feb 23 30:01 zzplayer", 
  +        "drwxr-xr-x   2 root     root         4096 Aug 36  2001 zztpp", 
  +        "-rw-r--r--   1 14       staff       80284 Aug 22  zxJDBC-1.2.3.tar.gz", 
  +        "-rw-r--r--   1 14       staff      119:26 Aug 22  2000 zxJDBC-1.2.3.zip", 
  +        "-rw-r--r--   1 ftp      no group    83853 Jan 22  2001 zxJDBC-1.2.4.tar.gz", 
  +        "-rw-r--r--   1ftp       nogroup    126552 Jan 22  2001 zxJDBC-1.2.4.zip", 
  +        "-rw-r--r--   1 root     root       111325 Apr -7 18:79 zxJDBC-2.0.1b1.tar.gz"
  +    };
   
  +    private static final String[] goodsamples = 
  +    {
  +        "-rwxr-xr-x   2 root     root         4096 Mar  2 15:13 zxbox", 
  +        "drwxr-xr-x   2 root     root         4096 Aug 24  2001 zxjdbc", 
  +        "drwxr-xr-x   2 root     root         4096 Jan  4 00:03 zziplib", 
  +        "drwxr-xr-x   2 root     99           4096 Feb 23  2001 zzplayer", 
  +        "drwxr-xr-x   2 root     root         4096 Aug  6  2001 zztpp", 
  +        "lrw-r--r--   1 14       14          80284 Aug 22  2000 zxJDBC-1.2.3.tar.gz", 
  +        "srw-r--r--   1 14       staff      119926 Aug 22  2000 zxJDBC-1.2.3.zip", 
  +        "crw-r--r--   1 ftp      nogroup     83853 Jan 22  2001 zxJDBC-1.2.4.tar.gz", 
  +        "brw-r--r--   1 ftp      nogroup    126552 Jan 22  2001 zxJDBC-1.2.4.zip", 
  +        "-rw-r--r--   1 root     root       111325 Apr 27  2001 zxJDBC-2.0.1b1.tar.gz", 
  +        "-rw-r--r--   1 root     root       190144 Apr 27  2001 zxJDBC-2.0.1b1.zip",
  +        "-rwxr-xr-x   2 500      500           166 Nov  2  2001 73131-testtes1.afp",
  +        "-rw-r--r--   1 500      500           166 Nov  9  2001 73131-testtes1.AFP",
  +        "-rw-r--r--   1 500      500           166 Nov 12  2001 73131-testtes2.afp",
  +        "-rw-r--r--   1 500      500           166 Nov 12  2001 73131-testtes2.AFP",      
  +        "-rw-r--r--   1 500      500       2040000 Aug  5 07:35 testRemoteUPCopyNIX",
  +        "-rw-r--r--   1 500      500       2040000 Aug  5 07:31 testRemoteUPDCopyNIX",
  +        "-rw-r--r--   1 500      500       2040000 Aug  5 07:31 testRemoteUPVCopyNIX"       
  +    };
   
  -    public UnixFTPEntryParserTest (String name)
  -    {
  -        super(name, new UnixFTPEntryParser());
  +    public UnixFTPEntryParserTest(String name)
  +    {
  +        super(name);
       }
   
  -    public void testPositive() throws Exception
  +    protected String[] getBadListing()
  +    {
  +        return(badsamples);
  +    }
  +    
  +    protected String[] getGoodListing()
       {
  -        _testPositive(goodsamples);
  +        return(goodsamples);
       }
  -    public void testNegative() throws Exception
  +    
  +    protected FTPFileEntryParser getParser() 
       {
  -        _testNegative(badsamples);
  +        return(new UnixFTPEntryParser());
  +    }
  +    
  +    public void testParseFieldsOnDirectory() throws Exception
  +    {
  +        FTPFile f = getParser().parseFTPEntry("drwxr-xr-x   2 user     group         4096 Mar  2 15:13 zxbox");
  +        assertNotNull("Could not parse entry.", 
  +                      f);
  +        assertTrue("Should have been a directory.", 
  +                   f.isDirectory());       
  +        checkPermissions(f);
  +        assertEquals(2, 
  +                     f.getHardLinkCount());
  +        assertEquals("user", 
  +                     f.getUser());
  +        assertEquals("group", 
  +                     f.getGroup());
  +        assertEquals("zxbox", 
  +                     f.getName());
  +        assertEquals(4096, 
  +                     f.getSize());
  +        assertEquals("Sat Mar 02 15:13:00 CST 2002", 
  +                     f.getTimestamp().getTime().toString());
  +    }
  +
  +    private void checkPermissions(FTPFile f)
  +    {
  +        assertTrue("Should have user read permission.", 
  +                   f.hasPermission(FTPFile.USER_ACCESS, 
  +                                   FTPFile.READ_PERMISSION));
  +        assertTrue("Should have user write permission.", 
  +                   f.hasPermission(FTPFile.USER_ACCESS, 
  +                                   FTPFile.WRITE_PERMISSION));
  +        assertTrue("Should have user execute permission.", 
  +                   f.hasPermission(FTPFile.USER_ACCESS, 
  +                                   FTPFile.EXECUTE_PERMISSION));
  +        assertTrue("Should have group read permission.", 
  +                   f.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                   FTPFile.READ_PERMISSION));
  +        assertTrue("Should NOT have group write permission.", 
  +                   !f.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                    FTPFile.WRITE_PERMISSION));
  +        assertTrue("Should have group execute permission.", 
  +                   f.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                   FTPFile.EXECUTE_PERMISSION));
  +        assertTrue("Should have world read permission.", 
  +                   f.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                   FTPFile.READ_PERMISSION));
  +        assertTrue("Should NOT have world write permission.", 
  +                   !f.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                    FTPFile.WRITE_PERMISSION));
  +        assertTrue("Should have world execute permission.", 
  +                   f.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                   FTPFile.EXECUTE_PERMISSION));
  +    }
   
  +    public void testParseFieldsOnFile() throws Exception
  +    {
  +        FTPFile f = getParser().parseFTPEntry("-rwxr-xr-x   2 user     group         4096 Mar  2 15:13 zxbox");
  +        assertNotNull("Could not parse entry.", 
  +                      f);
  +        assertTrue("Should have been a file.", 
  +                   f.isFile());
  +        checkPermissions(f);
  +        assertEquals(2, 
  +                     f.getHardLinkCount());
  +        assertEquals("user", 
  +                     f.getUser());
  +        assertEquals("group", 
  +                     f.getGroup());
  +        assertEquals("zxbox", 
  +                     f.getName());
  +        assertEquals(4096, 
  +                     f.getSize());
  +        assertEquals("Sat Mar 02 15:13:00 CST 2002", 
  +                     f.getTimestamp().getTime().toString());
  +    }
  +    
  +    public static TestSuite suite()
  +    {
  +        return(new TestSuite(UnixFTPEntryParserTest.class));
       }
   }
  
  
  
  1.2       +116 -31   jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/VMSFTPEntryParserTest.java
  
  Index: VMSFTPEntryParserTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/net/src/test/org/apache/commons/net/ftp/ftp2/parser/VMSFTPEntryParserTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- VMSFTPEntryParserTest.java	29 Apr 2002 03:55:32 -0000	1.1
  +++ VMSFTPEntryParserTest.java	6 Aug 2002 20:32:05 -0000	1.2
  @@ -53,52 +53,137 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    */
  + 
  +import junit.framework.TestSuite;
  +
  +import org.apache.commons.net.ftp.FTPFile;
  +import org.apache.commons.net.ftp.ftp2.FTPFileEntryParser;
   
   /**
  - * VMSFTPEntryParserTest.java
  - * Tests the VMSFTPEntryParser
  - *
    * @author <a href="mailto:scohen@stevecoh1@attbi.com">Steve Cohen</a>
    * @version $Id$
    */
   public class VMSFTPEntryParserTest extends FTPParseTestFramework
   {
  +    private static final String[] badsamples = 
  +    {
   
  -    private static final String [] goodsamples = {
  -                "1-JUN.LIS;1              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -                "1-JUN.LIS;2              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)",
  -                "1-JUN.LIS;2              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)",
  -                "DATA.DIR;1               1/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (,RWED,RWED,RE)",
  -                "120196.TXT;1           118/126        14-APR-1997 12:45:27  [GROUP,OWNER]    (RWED,,RWED,RE)",
  -                "30CHARBAR.TXT;1         11/18          2-JUN-1998 08:38:42  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -                "A.;2                    18/18          1-JUL-1998 08:43:20  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -                "AA.;2                  152/153        13-FEB-1997 08:13:43  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -            };
  +        "1-JUN.LIS;1              9/9           2-jun-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)", 
  +        "1-JUN.LIS;2              9/9           JUN-2-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)", 
  +        "1-JUN.LIS;2              a/9           2-JUN-98 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)", 
  +        "DATA.DIR; 1              1/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (,RWED,RWED,RE)", 
  +        "120196.TXT;1           118/126        14-APR-1997 12:45:27 PM  [GROUP,OWNER]    (RWED,,RWED,RE)", 
  +        "30CHARBAR.TXT;1         11/18          2-JUN-1998 08:38:42  [GROUP-1,OWNER]    (RWED,RWED,RWED,RE)", 
  +        "A.;2                    18/18          1-JUL-1998 08:43:20  [GROUP,OWNER]    (RWED2,RWED,RWED,RE)", 
  +        "AA.;2                  152/153        13-FED-1997 08:13:43  [GROUP,OWNER]    (RWED,RWED,RWED,RE)"
  +    };
  +    
  +    private static final String[] goodsamples = 
  +    {
   
  -    private static final String [] badsamples = {
  -                "1-JUN.LIS;1              9/9           2-jun-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -                "1-JUN.LIS;2              9/9           JUN-2-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)",
  -                "1-JUN.LIS;2              a/9           2-JUN-98 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)",
  -                "DATA.DIR; 1              1/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (,RWED,RWED,RE)",
  -                "120196.TXT;1           118/126        14-APR-1997 12:45:27 PM  [GROUP,OWNER]    (RWED,,RWED,RE)",
  -                "30CHARBAR.TXT;1         11/18          2-JUN-1998 08:38:42  [GROUP-1,OWNER]    (RWED,RWED,RWED,RE)",
  -                "A.;2                    18/18          1-JUL-1998 08:43:20  [GROUP,OWNER]    (RWED2,RWED,RWED,RE)",
  -                "AA.;2                  152/153        13-FED-1997 08:13:43  [GROUP,OWNER]    (RWED,RWED,RWED,RE)",
  -            };
  +        "1-JUN.LIS;1              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)", 
  +        "1-JUN.LIS;2              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)", 
  +        "1-JUN.LIS;2              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,)", 
  +        "DATA.DIR;1               1/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (,RWED,RWED,RE)", 
  +        "120196.TXT;1           118/126        14-APR-1997 12:45:27  [GROUP,OWNER]    (RWED,,RWED,RE)", 
  +        "30CHARBAR.TXT;1         11/18          2-JUN-1998 08:38:42  [GROUP,OWNER]    (RWED,RWED,RWED,RE)", 
  +        "A.;2                    18/18          1-JUL-1998 08:43:20  [GROUP,OWNER]    (RWED,RWED,RWED,RE)", 
  +        "AA.;2                  152/153        13-FEB-1997 08:13:43  [GROUP,OWNER]    (RWED,RWED,RWED,RE)"
  +    };
   
  +    public VMSFTPEntryParserTest(String name)
  +    {
  +        super(name);
  +    }
   
  -    public VMSFTPEntryParserTest (String name)
  +    public void testParseFieldsOnDirecotry()
       {
  -        super(name, new VMSFTPEntryParser());
  +
  +        FTPFile dir = getParser().parseFTPEntry("DATA.DIR;1               1/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)");
  +        assertTrue("Should be a directory.", 
  +                   dir.isDirectory());
  +        assertEquals("DATA.DIR", 
  +                     dir.getName());
  +        assertEquals(512, 
  +                     dir.getSize());
  +        assertEquals("Tue Jun 02 07:32:04 CDT 1998", 
  +                     dir.getTimestamp().getTime().toString());
  +        assertEquals("GROUP", 
  +                     dir.getGroup());
  +        assertEquals("OWNER", 
  +                     dir.getUser());
  +        checkPermisions(dir);
       }
   
  -    public void testPositive() throws Exception
  +    public void testParseFieldsOnFile()
       {
  -        _testPositive(goodsamples);
  +        FTPFile file = getParser().parseFTPEntry("1-JUN.LIS;1              9/9           2-JUN-1998 07:32:04  [GROUP,OWNER]    (RWED,RWED,RWED,RE)");
  +        assertTrue("Should be a file.", 
  +                   file.isFile());
  +        assertEquals("1-JUN.LIS", 
  +                     file.getName());
  +        assertEquals(9 * 512, 
  +                     file.getSize());
  +        assertEquals("Tue Jun 02 07:32:04 CDT 1998", 
  +                     file.getTimestamp().getTime().toString());
  +        assertEquals("GROUP", 
  +                     file.getGroup());
  +        assertEquals("OWNER", 
  +                     file.getUser());
  +        checkPermisions(file);
       }
  -    public void testNegative() throws Exception
  +
  +    protected String[] getBadListing()
       {
  -        _testNegative(badsamples);
   
  +        return (badsamples);
       }
  -}
  +
  +    protected String[] getGoodListing()
  +    {
  +
  +        return (goodsamples);
  +    }
  +
  +    protected FTPFileEntryParser getParser()
  +    {
  +
  +        return (new VMSFTPEntryParser());
  +    }
  +
  +    private void checkPermisions(FTPFile dir)
  +    {
  +        assertTrue("Owner should not have read permission.", 
  +                   !dir.hasPermission(FTPFile.USER_ACCESS, 
  +                                      FTPFile.READ_PERMISSION));
  +        assertTrue("Owner should not have write permission.", 
  +                   !dir.hasPermission(FTPFile.USER_ACCESS, 
  +                                      FTPFile.WRITE_PERMISSION));
  +        assertTrue("Owner should not have execute permission.", 
  +                   !dir.hasPermission(FTPFile.USER_ACCESS, 
  +                                      FTPFile.EXECUTE_PERMISSION));
  +        assertTrue("Group should not have read permission.", 
  +                   !dir.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                      FTPFile.READ_PERMISSION));
  +        assertTrue("Group should not have write permission.", 
  +                   !dir.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                      FTPFile.WRITE_PERMISSION));
  +        assertTrue("Group should not have execute permission.", 
  +                   !dir.hasPermission(FTPFile.GROUP_ACCESS, 
  +                                      FTPFile.EXECUTE_PERMISSION));
  +        assertTrue("World should not have read permission.", 
  +                   !dir.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                      FTPFile.READ_PERMISSION));
  +        assertTrue("World should not have write permission.", 
  +                   !dir.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                      FTPFile.WRITE_PERMISSION));
  +        assertTrue("World should not have execute permission.", 
  +                   !dir.hasPermission(FTPFile.WORLD_ACCESS, 
  +                                      FTPFile.EXECUTE_PERMISSION));
  +    }
  +    
  +    public static TestSuite suite()
  +    {
  +        return(new TestSuite(VMSFTPEntryParserTest.class));
  +    }   
  +}
  \ No newline at end of file
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>