001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.commons.net.ftp.parser;
018    
019    import junit.framework.TestSuite;
020    
021    import org.apache.commons.net.ftp.FTPFile;
022    import org.apache.commons.net.ftp.FTPFileEntryParser;
023    
024    /**
025     * @author <a href="mailto:scohen@apache.org">Steve Cohen</a>
026     * @version $Id: OS2FTPEntryParserTest.java 437134 2006-08-26 09:36:36Z rwinston $
027     */
028    public class OS2FTPEntryParserTest extends FTPParseTestFramework
029    {
030    
031        private static final String[] badsamples =
032        {
033            "                 DIR   12-30-97   12:32  jbrekke",
034            "     0    rsa    DIR   11-25-97   09:42  junk",
035            "     0           dir   05-12-97   16:44  LANGUAGE",
036            "     0           DIR   13-05-97   25:49  MPTN",
037            "587823    RSA    DIR   Jan-08-97   13:58  OS2KRNL",
038            " 33280      A          1997-02-03  13:49  OS2LDR",
039            "12-05-96  05:03PM       <DIR>          absoft2",
040            "11-14-97  04:21PM                  953 AUDITOR3.INI"
041        };
042        private static final String[] goodsamples =
043        {
044            "     0           DIR   12-30-97   12:32  jbrekke",
045            "     0           DIR   11-25-97   09:42  junk",
046            "     0           DIR   05-12-97   16:44  LANGUAGE",
047            "     0           DIR   05-19-97   12:56  local",
048            "     0           DIR   05-12-97   16:52  Maintenance Desktop",
049            "     0           DIR   05-13-97   10:49  MPTN",
050            "587823    RSA    DIR   01-08-97   13:58  OS2KRNL",
051            " 33280      A          02-09-97   13:49  OS2LDR",
052            "     0           DIR   11-28-97   09:42  PC",
053            "149473      A          11-17-98   16:07  POPUPLOG.OS2",
054            "     0           DIR   05-12-97   16:44  PSFONTS",
055            "     0           DIR   05-19-2000 12:56  local",
056        };
057    
058        /**
059         * @see junit.framework.TestCase#TestCase(String)
060         */
061        public OS2FTPEntryParserTest(String name)
062        {
063            super(name);
064        }
065    
066        /**
067         * Method suite.
068         * @return TestSuite
069         */
070        public static TestSuite suite()
071        {
072    
073            return (new TestSuite(OS2FTPEntryParserTest.class));
074        }
075    
076        /**
077         * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#testParseFieldsOnDirectory()
078         */
079        @Override
080        public void testParseFieldsOnDirectory() throws Exception
081        {
082            FTPFile dir = getParser().parseFTPEntry("     0           DIR   11-28-97   09:42  PC");
083            assertNotNull("Could not parse entry.", dir);
084            assertTrue("Should have been a directory.",
085                       dir.isDirectory());
086            assertEquals(0,dir.getSize());
087            assertEquals("PC", dir.getName());
088            assertEquals("Fri Nov 28 09:42:00 1997",
089                         df.format(dir.getTimestamp().getTime()));
090        }
091    
092        /**
093         * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#testParseFieldsOnFile()
094         */
095        @Override
096        public void testParseFieldsOnFile() throws Exception
097        {
098            FTPFile file = getParser().parseFTPEntry("5000000000      A          11-17-98   16:07  POPUPLOG.OS2");
099            assertNotNull("Could not parse entry.", file);
100            assertTrue("Should have been a file.",
101                       file.isFile());
102            assertEquals(5000000000L, file.getSize());
103            assertEquals("POPUPLOG.OS2", file.getName());
104            assertEquals("Tue Nov 17 16:07:00 1998",
105                         df.format(file.getTimestamp().getTime()));
106        }
107    
108        /**
109         * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#getBadListing()
110         */
111        @Override
112        protected String[] getBadListing()
113        {
114    
115            return (badsamples);
116        }
117    
118        /**
119         * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#getGoodListing()
120         */
121        @Override
122        protected String[] getGoodListing()
123        {
124    
125            return (goodsamples);
126        }
127    
128        /**
129         * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#getParser()
130         */
131        @Override
132        protected FTPFileEntryParser getParser()
133        {
134            ConfigurableFTPFileEntryParserImpl parser =
135                new OS2FTPEntryParser();
136            parser.configure(null);
137            return parser;
138        }
139    }