    1   /*
    2    * Copyright 2005 The Apache Software Foundation
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *     http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16
    17  package org.apache.commons.net.ftp.parser;
    18
    19  import junit.framework.TestSuite;
    20
    21  import org.apache.commons.net.ftp.FTPFile;
    22  import org.apache.commons.net.ftp.FTPFileEntryParser;
    23
    24  /***
    25   * Created on Apr 6, 2005<br/>
    26   * @author <a href="mailto:wnoto@openfinance.com">William Noto</a>
    27   * @version $Id: NTFTPEntryParserTest.java,v 1.16 2005/01/02 03:17:50 scohen Exp $
    28   */
    29  public class MVSFTPEntryParserTest extends FTPParseTestFramework
    30  {
    31      private static final String [] goodsamples  =
    32      {
    33          "Migrated                                                file1.I",
    34          "Migrated                                                file2.I",
    35          "PSMLC1 3390   2005/04/04  1    1  VB   27994 27998  PS  file3.I",
    36          "PSMLB9 3390   2005/04/04  1    1  VB   27994 27998  PS  file4.I.BU",
    37          "PSMLB6 3390   2005/04/05  1    1  VB   27994 27998  PS  file3.I.BU",
    38          "PSMLC6 3390   2005/04/05  1    1  VB   27994 27998  PS  file6.I",
    39          "Migrated                                                file6.O",
    40          "PSMLB7 3390   2005/04/04  1    1  VB   27994 27998  PS  file7.O",
    41          "PSMLC6 3390   2005/04/05  1    1  VB   27994 27998  PS  file7.O.BU",
    42      	"FPFS42 3390   2004/06/23  1    1  FB     128  6144  PS  INCOMING.RPTBM023.D061704",
    43      	"FPFS41 3390   2004/06/23  1    1  FB     128  6144  PS  INCOMING.RPTBM056.D061704",
    44      	"FPFS25 3390   2004/06/23  1    1  FB     128  6144  PS  INCOMING.WTM204.D061704",
    45      };
    46
    47      private static final String [] badsamples =
    48      {
    49          "MigratedP201.$FTXPBI1.$CF2ITB.$AAB0402.I",
    50          "PSMLC133902005/04/041VB2799427998PSfile1.I",
    51          "file2.O",
    52      };
    53
    54      /***
    55       * @see junit.framework.TestCase#TestCase(String)
    56       */
    57      public MVSFTPEntryParserTest (String name)
    58      {
    59          super(name);
    60      }
    61
    62      /* (non-Javadoc)
    63       * @see org.apache.commons.net.ftp.parser.CompositeFTPParseTestFramework#getBadListings()
    64       */
    65      protected String[] getBadListing() {
    66          return badsamples;
    67      }
    68      /* (non-Javadoc)
    69       * @see org.apache.commons.net.ftp.parser.CompositeFTPParseTestFramework#getGoodListings()
    70       */
    71      protected String[] getGoodListing() {
    72          return goodsamples;
    73      }
    74
    75
    76      /***
    77       * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#getParser()
    78       */
    79      protected FTPFileEntryParser getParser()
    80      {
    81          return new CompositeFileEntryParser(new FTPFileEntryParser[]
    82          {
    83              new MVSFTPEntryParser(),
    84          });
    85      }
    86
    87      /***
    88       * Method suite.
    89       *
    90       * @return TestSuite
    91       */
    92      public static TestSuite suite()
    93      {
    94          return(new TestSuite(MVSFTPEntryParserTest.class));
    95      }
    96
    97      public void testParseFieldsOnDirectory() throws Exception
    98      {
    99          // I don't really know how to test this because the MVS system that I
    100         // connect with does not allow me to create directories.
    101     }
    102
    103     /* (non-Javadoc)
    104      * @see org.apache.commons.net.ftp.parser.FTPParseTestFramework#testParseFieldsOnFile()
    105      */
    106     public void testParseFieldsOnFile() throws Exception {
    107         FTPFile file = getParser().parseFTPEntry("Migrated                                                file1.I");
    108         assertNotNull("Could not parse entry.", file);
    109         assertTrue("Should have been a file.", file.isFile());
    110         assertEquals("file1.I", file.getName());
    111
    112         FTPFile file2 = getParser().parseFTPEntry("PSMLC1 3390   2005/04/04  1    1  VB   27994 27998  PS  file2.I");
    113         assertNotNull("Could not parse entry.", file2);
    114         assertTrue("Should have been a file.", file2.isFile());
    115         assertEquals("file2.I", file2.getName());
    116     }
    117 }