package org.jvalue.ods.processor.adapter.server; import org.mockftpserver.fake.FakeFtpServer; import org.mockftpserver.fake.UserAccount; import org.mockftpserver.fake.filesystem.DirectoryEntry; import org.mockftpserver.fake.filesystem.FileEntry; import org.mockftpserver.fake.filesystem.FileSystem; import org.mockftpserver.fake.filesystem.UnixFakeFileSystem; import java.net.URL; public final class FtpServer implements Server { private static final String FILE_NAME = FtpServer.class.getSimpleName(); private FakeFtpServer ftpServer; @Override public void start(String content) { ftpServer = new FakeFtpServer(); ftpServer.setServerControlPort(8083); ftpServer.addUserAccount(new UserAccount("user", "pass", "/")); FileSystem fileSystem = new UnixFakeFileSystem(); fileSystem.add(new DirectoryEntry("/")); fileSystem.add(new FileEntry("/" + FILE_NAME, content)); ftpServer.setFileSystem(fileSystem); ftpServer.start(); } @Override public void stop() { ftpServer.stop(); ftpServer = null; } @Override public URL getFileUrl() throws Exception { return new URL("ftp://user:pass@localhost:8083/" + FILE_NAME); } }