예제 #1
0
파일: BugsTest.java 프로젝트: srnsw/xena
  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());
    }
  }
예제 #2
0
파일: BugsTest.java 프로젝트: srnsw/xena
  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());
    }
  }