Как создать фиктивный сервер FTPS для модульного тестирования передачи файлов в Java

У меня есть класс CreateFTPConnection, который создает соединение FTPS. По этому соединению передаются файлы. Вот код класса TransferFile

public class TransferFile
{
   private CreateFTPConnection ftpConnection;
   private FTPSClient client;

public TransferFile(CreateFTPConnection ftpConnection) {
    this.ftpConnection = ftpConnection;
    this.client = ftpConnection.getClient();
}

public void transfer(Message<?> msg)
{
    InputStream inputStream = null;
    try
    {
        if(!client.isConnected()){
            ftpConnection.init();
            client = ftpConnection.getClient();
        }
        File file = (File) msg.getPayload();
        inputStream = new FileInputStream(file);
        client.storeFile(file.getName(), inputStream);
        client.sendNoOp();
    } catch (Exception e) {
        try
        {
            client.disconnect();
        }
        catch (IOException e1) {
            e1.printStackTrace();
        }
    }
    finally
    {
        try {
            inputStream.close();
        } 
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
}

Мне нужно написать jUnit Testcase для этого класса. Для этого мне нужно создать соединение FTPS Mock Server и использовать это соединение для проверки передачи файлов. Так может ли кто-нибудь дать мне представление о том, как создать FTPS Mock Server и выполнить тестовый пример. Я гуглил об этом, но то, что я получаю, это FTP или SFTP, а не FTPS. Пожалуйста помогите.


person Jyoti Ranjan    schedule 26.12.2012    source источник


Ответы (1)


Вам может быть полезен этот MockFTPServer.

Проблема в том, что эти фиктивные серверы не реализуют часть TLS, насколько я вижу. Возможно, вам придется немного поработать, чтобы разрешить подключения через TLS.

Вы должны иметь возможность поискать и найти здесь несколько статей на SO о работе с сертификатами (или, в некоторых случаях, об их обходе) ради вашего тестирования.

Вот еще одна статья, которая проходит через этапы создания базового теста FTP-сервера.

За исключением полноценного FTP-сервера (Apache http с дополнением mod_ftp), быть чем-нибудь полезным для этого.

person Mike    schedule 26.12.2012
comment
Спасибо, Майк, за быстрый ответ, я еще раз просмотрю эти статьи. - person Jyoti Ranjan; 26.12.2012