Home | History | Annotate | Download | only in apt
      1 		--------------------------------------------------
      2 								Home
      3 		--------------------------------------------------
      4 
      5 MockFtpServer - Providing a Fake/Stub FTP Server
      6 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      7 
      8   The <<MockFtpServer>> project provides mock/dummy FTP server implementations that can be very
      9   useful for testing of FTP client code. Two FTP Server implementations are provided, each at a different
     10   level of abstraction.
     11 
     12   <<FakeFtpServer>> provides a higher-level abstraction for an FTP server and is suitable for most testing
     13   and simulation scenarios. You define a filesystem (virtual, in-memory) containing an arbitrary set of
     14   files and directories. These files and directories can (optionally) have associated access permissions.
     15   You also configure a set of one or more user accounts that control which users can login to the FTP server,
     16   and their home (default) directories. The user account is also used when assigning file and directory
     17   ownership for new files. See {{{./fakeftpserver-features.html}FakeFtpServer Features and Limitations}}.
     18 
     19   <<StubFtpServer>> is a "stub" implementation of an FTP server. It supports the main FTP commands by
     20   implementing command handlers for each of the corresponding low-level FTP server commands (e.g. RETR,
     21   DELE, LIST). These <CommandHandler>s can be individually configured to return custom data or reply codes,
     22   allowing simulation of a complete range of both success and failure scenarios. The <CommandHandler>s can
     23   also be interrogated to verify command invocation data such as command parameters and timestamps.
     24   See {{{./stubftpserver-features.html}StubFtpServer Features and Limitations}}.
     25 
     26   See the {{{./fakeftpserver-versus-stubftpserver.html}FakeFtpServer or StubFtpServer?}} page for more
     27   information on deciding whether to use <<FakeFtpServer>> or <<StubFtpServer>>.
     28 
     29   The <<MockFtpServer>> project is written in Java, and is ideally suited to testing Java code. But because
     30   communication with the FTP server is across the network using sockets, it can be used to test FTP client 
     31   code written in any language.
     32 
     33   NOTE: Starting with <<MockFtpServer>> 2.4, the <<Log4J>> dependency has been replaced with {{{http://www.slf4j.org/}SLF4J}}.
     34 
     35 
     36 * Requirements
     37 ~~~~~~~~~~~~~~
     38 
     39   The <<MockFtpServer>> project requires:
     40 
     41   *  Java (JDK) version 1.4 or later
     42 
     43   * The {{{http://www.slf4j.org/}SLF4J}} API jar, accessible on the CLASSPATH. An SLF4J binding (logging
     44     framework-specific jar) is optional.
     45 
     46 
     47 * Maven Support
     48 ~~~~~~~~~~~~~~~
     49 
     50   For projects built using {{{http://maven.apache.org/}Maven}}, <<MockFtpServer>> is now available
     51   from the <<Maven Central Repository>>. Add a dependency to your POM like this:
     52 
     53 --------------------
     54   <dependency>
     55     <groupId>org.mockftpserver</groupId>
     56     <artifactId>MockFtpServer</artifactId>
     57     <version>2.4</version>
     58     <scope>test</scope>
     59   </dependency>
     60 --------------------