/** * Gets a full path to CPL file. It can be defined either in config.xml or via command line arguments. * Setting a parameter via command line argument overwrites value from config.xml. * * @return a file defining a full path to CPL or null if it's not specified neither in config.xml nor via command line arguments */ public File getCplFile() { // cmd line argument has first priority String cpl = cmdLineArgs.getCpl() != null ? cmdLineArgs.getCpl() : defaultCpl; if (cpl == null) { return null; } // try if a valid path for CPL is specified. File cplFile = new File(cpl); if (cplFile.isFile()) { return cplFile; } // assume that the CPL is relative to IMP. File impDirectory = getImpDirectoryFile(); if (impDirectory == null) { return cplFile; } return new File(impDirectory, cpl); }
@Test public void testParseCorrectCmdLineArgumentsShortName() { String[] args = new String[]{ "--cpl", "cpl.xml", "--imp", "pathToImp", "-c", "config.xml", "-w", "pathToWorkingDir", "-l", "error" }; ImfUtilityCmdLineArgs cmdLineArgs = CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args); assertEquals("cpl.xml", cmdLineArgs.getCpl()); assertEquals("pathToImp", cmdLineArgs.getImp()); assertEquals("config.xml", cmdLineArgs.getConfig()); assertEquals("pathToWorkingDir", cmdLineArgs.getWorkingDirectory()); assertEquals(LogLevel.error, cmdLineArgs.getLogLevel()); }
@Test public void testParseCorrectCmdLineArgumentsLongName() { String[] args = new String[]{ "--cpl", "cpl.xml", "--imp", "pathToImp", "--config", "config.xml", "--working-dir", "pathToWorkingDir", "--log-level", "debug" }; ImfUtilityCmdLineArgs cmdLineArgs = CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args); assertEquals("cpl.xml", cmdLineArgs.getCpl()); assertEquals("pathToImp", cmdLineArgs.getImp()); assertEquals("config.xml", cmdLineArgs.getConfig()); assertEquals("pathToWorkingDir", cmdLineArgs.getWorkingDirectory()); assertEquals(LogLevel.debug, cmdLineArgs.getLogLevel()); }