public void test11458() { Options options = new Options(); options.addOption(OptionBuilder.withValueSeparator('=').hasArgs().create('D')); options.addOption(OptionBuilder.withValueSeparator(':').hasArgs().create('p')); String[] args = new String[] {"-DJAVA_HOME=/opt/java", "-pfile1:file2:file3"}; CommandLineParser parser = new PosixParser(); try { CommandLine cmd = parser.parse(options, args); String[] values = cmd.getOptionValues('D'); assertEquals(values[0], "JAVA_HOME"); assertEquals(values[1], "/opt/java"); values = cmd.getOptionValues('p'); assertEquals(values[0], "file1"); assertEquals(values[1], "file2"); assertEquals(values[2], "file3"); java.util.Iterator iter = cmd.iterator(); while (iter.hasNext()) { Option opt = (Option) iter.next(); switch (opt.getId()) { case 'D': assertEquals(opt.getValue(0), "JAVA_HOME"); assertEquals(opt.getValue(1), "/opt/java"); break; case 'p': assertEquals(opt.getValue(0), "file1"); assertEquals(opt.getValue(1), "file2"); assertEquals(opt.getValue(2), "file3"); break; default: fail("-D option not found"); } } } catch (ParseException exp) { fail( "Unexpected Exception:\nMessage:" + exp.getMessage() + "Type: " + exp.getClass().getName()); } }
public void test13935() { OptionGroup directions = new OptionGroup(); Option left = new Option("l", "left", false, "go left"); Option right = new Option("r", "right", false, "go right"); Option straight = new Option("s", "straight", false, "go straight"); Option forward = new Option("f", "forward", false, "go forward"); forward.setRequired(true); directions.addOption(left); directions.addOption(right); directions.setRequired(true); Options opts = new Options(); opts.addOptionGroup(directions); opts.addOption(straight); CommandLineParser parser = new PosixParser(); boolean exception = false; String[] args = new String[] {}; try { CommandLine line = parser.parse(opts, args); } catch (ParseException exp) { exception = true; } if (!exception) { fail("Expected exception not caught."); } exception = false; args = new String[] {"-s"}; try { CommandLine line = parser.parse(opts, args); } catch (ParseException exp) { exception = true; } if (!exception) { fail("Expected exception not caught."); } exception = false; args = new String[] {"-s", "-l"}; try { CommandLine line = parser.parse(opts, args); } catch (ParseException exp) { fail("Unexpected exception: " + exp.getClass().getName() + ":" + exp.getMessage()); } opts.addOption(forward); args = new String[] {"-s", "-l", "-f"}; try { CommandLine line = parser.parse(opts, args); } catch (ParseException exp) { fail("Unexpected exception: " + exp.getClass().getName() + ":" + exp.getMessage()); } }