chrismair | 00dc7bd | 2014-05-11 21:21:28 +0000 | [diff] [blame] | 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 | -------------------- |