@Test public void basicFileUpload() throws IOException { TestRunner runner = TestRunners.newTestRunner(PutFTP.class); runner.setProperty(FTPTransfer.HOSTNAME, "localhost"); runner.setProperty(FTPTransfer.USERNAME, username); runner.setProperty(FTPTransfer.PASSWORD, password); runner.setProperty(FTPTransfer.PORT, Integer.toString(ftpPort)); try (FileInputStream fis = new FileInputStream("src/test/resources/randombytes-1");) { Map<String, String> attributes = new HashMap<String, String>(); attributes.put(CoreAttributes.FILENAME.key(), "randombytes-1"); runner.enqueue(fis, attributes); runner.run(); } runner.assertQueueEmpty(); runner.assertAllFlowFilesTransferred(PutFTP.REL_SUCCESS); FileSystem results = fakeFtpServer.getFileSystem(); // Check file was uploaded Assert.assertTrue(results.exists("c:\\data\\randombytes-1")); }
@Test public void basicFileFetch() throws IOException { FileSystem results = fakeFtpServer.getFileSystem(); FileEntry sampleFile = new FileEntry("c:\\data\\randombytes-2"); sampleFile.setContents("Just some random test test test chocolate"); results.add(sampleFile); // Check file exists Assert.assertTrue(results.exists("c:\\data\\randombytes-2")); TestRunner runner = TestRunners.newTestRunner(FetchFTP.class); runner.setProperty(FetchFTP.HOSTNAME, "${host}"); runner.setProperty(FetchFTP.USERNAME, "${username}"); runner.setProperty(FTPTransfer.PASSWORD, password); runner.setProperty(FTPTransfer.PORT, "${port}"); runner.setProperty(FetchFTP.REMOTE_FILENAME, "c:\\data\\randombytes-2"); runner.setProperty(FetchFTP.COMPLETION_STRATEGY, FetchFTP.COMPLETION_MOVE); runner.setProperty(FetchFTP.MOVE_DESTINATION_DIR, "data"); Map<String, String> attrs = new HashMap<String, String>(); attrs.put("host", "localhost"); attrs.put("username", username); attrs.put("port", Integer.toString(ftpPort)); runner.enqueue("", attrs); runner.run(); final MockFlowFile retrievedFile = runner.getFlowFilesForRelationship(FetchFTP.REL_SUCCESS).get(0); retrievedFile.assertContentEquals("Just some random test test test chocolate"); }
@Test public void basicFileGet() throws IOException { FileSystem results = fakeFtpServer.getFileSystem(); FileEntry sampleFile = new FileEntry("c:\\data\\randombytes-2"); sampleFile.setContents("Just some random test test test chocolate"); results.add(sampleFile); // Check file exists Assert.assertTrue(results.exists("c:\\data\\randombytes-2")); TestRunner runner = TestRunners.newTestRunner(GetFTP.class); runner.setProperty(FTPTransfer.HOSTNAME, "localhost"); runner.setProperty(FTPTransfer.USERNAME, username); runner.setProperty(FTPTransfer.PASSWORD, password); runner.setProperty(FTPTransfer.PORT, Integer.toString(ftpPort)); runner.setProperty(FTPTransfer.REMOTE_PATH, "/"); runner.run(); final MockFlowFile retrievedFile = runner.getFlowFilesForRelationship(GetFTP.REL_SUCCESS).get(0); retrievedFile.assertContentEquals("Just some random test test test chocolate"); }
@Test public void basicFileList() throws IOException, InterruptedException { FileSystem results = fakeFtpServer.getFileSystem();
public FileSystemEntry getFile(String fileName) throws Exception { FileSystem fileSystem = fakeFtpServer.getFileSystem(); return fileSystem.getEntry(baseDir + "/" + fileName); }
/** * Stop the fakeFtpServer. Remove all temp files from the baseDir * <p/> * The fakeFtpServer demon will normally be stopped by JUnit using the after() method. This method allows the sshd to * be stopped manually to support advanced testing scenarios. */ public void stop() { for(Object file:fakeFtpServer.getFileSystem().listFiles(baseDir)){ fakeFtpServer.getFileSystem().delete(((FileEntry)file).getPath()); } fakeFtpServer.getFileSystem().delete(baseDir); fakeFtpServer.stop(); }
public void putFile(String fileName, final String content) throws Exception { FileSystem fileSystem = fakeFtpServer.getFileSystem(); fileSystem.add(new FileEntry(baseDir + "/" + fileName, content)); }