/** * Copyright 2011 Nube Technologies * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and limitations under the License. */ package co.nubetech.hiho.job; import org.apache.hadoop.conf.Configuration; import org.junit.Test; import co.nubetech.hiho.common.HIHOConf; import co.nubetech.hiho.common.HIHOException; import co.nubetech.hiho.common.HihoTestCase; public class TestExportToFTPServer extends HihoTestCase { @Test public void testPopulateConfiguration() { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "sgoyal", "-ftpAddress", "192.168.128.3", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); assertEquals("sgoyal", conf.get(HIHOConf.FTP_USER)); assertEquals("192.168.128.3", conf.get(HIHOConf.FTP_ADDRESS)); assertEquals("21", conf.get(HIHOConf.FTP_PORT)); assertEquals("sonalgoyal123", conf.get(HIHOConf.FTP_PASSWORD)); } @Test public void testCheckMandatoryConfsValidValues() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "sgoyal", "-ftpAddress", "192.168.128.3", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForInputPath() throws HIHOException { String[] args = new String[] { "-inputPath", "-outputPath", "output", "-ftpUserName", "sgoyal", "-ftpAddress", "192.168.128.3", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForOutputPath() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "-ftpUserName", "sgoyal", "-ftpAddress", "192.168.128.3", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForFtpUserName() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "-ftpAddress", "192.168.128.3", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForFtpAddress() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "username", "-ftpAddress", "-ftpPortNumper", "21", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForFtpPortNumber() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "username", "-ftpAddress", "address", "-ftpPortNumper", "-ftpPassword", "sonalgoyal123" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } @Test(expected = HIHOException.class) public void testCheckMandatoryConfsForFtpPassword() throws HIHOException { String[] args = new String[] { "-inputPath", "input", "-outputPath", "output", "-ftpUserName", "username", "-ftpAddress", "address", "-ftpPortNumper", "21", "-ftpPassword" }; ExportToFTPServer exportToFTPServer = new ExportToFTPServer(); Configuration conf = new Configuration(); exportToFTPServer.populateConfiguration(args, conf); exportToFTPServer.checkMandatoryConfs(conf); } //still to complete. /*@Test public void testFtpJob() throws Exception { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory(); // set the port of the listener factory.setPort(2221); // replace the default listener serverFactory.addListener("default", factory.createListener()); PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory(); userManagerFactory.setFile(new File("/tmp/myusers.properties")); UserManager um = userManagerFactory.createUserManager(); BaseUser user = new BaseUser(); user.setName("nube"); user.setPassword("nube123"); user.setHomeDirectory("/tmp"); um.save(user); FtpServer server = serverFactory.createServer(); server.start(); final String inputData = "A\tTimon Leonard,716 Ac Ave,1-857-935-3882,62240" + "\nD\tMacaulay Jackson,5435 Dui. Avenue,1-770-395-6446,31584" + "\nB\tCharles Wood,525-9709 In Rd.,1-370-528-4758,62714"; createTextFileInHDFS(inputData, "/input", "testFile.txt"); String[] args = new String[] { "-inputPath", "/input", "-outputPath", "/tmp/output", "-ftpUserName", "nube", "-ftpAddress", "192.168.128.8", "-ftpPortNumper", "2221", "-ftpPassword", "nube123" }; ExportToFTPServer job = new ExportToFTPServer(); int res = ToolRunner.run(createJobConf(), job, args); assertEquals(0, res); }*/ }