@Test public void testMultipleOptions() throws SoarException { op.newOption(alpha).done(); op.newOption(bravo).done(); List<String> empty = new ArrayList<String>(); List<String> arg = Lists.newArrayList("arg"); verify(Lists.newArrayList("command", "--alpha", "--bravo"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "--alpha", "--bravo"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--alpha", "arg", "--bravo"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--alpha", "--bravo", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "--bravo"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-a", "--bravo"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "arg", "--bravo"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "--bravo", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--alpha", "-b"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "--alpha", "-b"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--alpha", "arg", "-b"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--alpha", "-b", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "-b"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-a", "-b"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "arg", "-b"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-a", "-b", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "-a"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-b", "-a"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "arg", "-a"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "-a", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "-a"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "--bravo", "-a"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "arg", "-a"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "-a", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "--alpha"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-b", "--alpha"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "arg", "--alpha"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-b", "--alpha", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "--alpha"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "--bravo", "--alpha"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "arg", "--alpha"), arg, alpha, bravo); verify(Lists.newArrayList("command", "--bravo", "--alpha", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-ab"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-ab"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-ab", "arg"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-ba"), empty, alpha, bravo); verify(Lists.newArrayList("command", "arg", "-ba"), arg, alpha, bravo); verify(Lists.newArrayList("command", "-ba", "arg"), arg, alpha, bravo); }
public OptionBuilder newOption(E longOption) { return new OptionBuilder(longOption); }
OptionProcessor { public OptionBuilder newOption(E longOption) { return new OptionBuilder(longOption); } }
OptionProcessor { public OptionBuilder newOption(E longOption) { return new OptionBuilder(longOption); }  }
OptionProcessor { public OptionBuilder newOption(E longOption) { return new OptionBuilder(longOption); }  static OptionProcessor<T> create(); OptionBuilder newOption(E longOption); List<String> process(List<String> args); boolean has(E longOption); void set(E longOption); void unset(E longOption); void set(E longOption, String argument); String get(E longOption); int getInteger(E longOption); double getDouble(E longOption); float getFloat(E longOption); @Override String toString(); }
OptionProcessor { public OptionBuilder newOption(E longOption) { return new OptionBuilder(longOption); }  static OptionProcessor<T> create(); OptionBuilder newOption(E longOption); List<String> process(List<String> args); boolean has(E longOption); void set(E longOption); void unset(E longOption); void set(E longOption, String argument); String get(E longOption); int getInteger(E longOption); double getDouble(E longOption); float getFloat(E longOption); @Override String toString();  }