### Question:
ArgumentParserImpl implements ArgumentParser { @Override public void parseArguments(final ParsedArguments parsedArguments, final String... arguments) throws ArgumentValidationException { boolean finishedOptions = false; for (final String argument : arguments) { if(finishedOptions) { parsedArguments.addValue(argument); } else { finishedOptions = add(parsedArguments, argument); } } }  @Override void parseArguments(final ParsedArguments parsedArguments, final String... arguments);  }### Answer:
@Test public void testParseArguments() { parseArguments(new String[] {}); }
@Test public void testParseArgumentsNotUparsed() { context.checking(new Expectations() {{ oneOf(parsedArguments).addOption("a"); oneOf(parsedArguments).addValue("1"); oneOf(parsedArguments).addValue("2"); oneOf(parsedArguments).addOption("b"); oneOf(parsedArguments).addOption("c"); oneOf(parsedArguments).addValue("1"); oneOf(parsedArguments).addValue("2"); }}); parseArguments(new String[] { "-a", "1", "2", "-b", "-c", "1", "2" }); }
@Test public void testParseArgumentsUnparsed() { context.checking(new Expectations() {{ oneOf(parsedArguments).addOption("a"); oneOf(parsedArguments).addValue("1"); oneOf(parsedArguments).addValue("2"); oneOf(parsedArguments).addOption("b"); oneOf(parsedArguments).addOption("c"); oneOf(parsedArguments).addValue("1"); oneOf(parsedArguments).addValue("2"); oneOf(parsedArguments).unparsedOptionsFollow(); oneOf(parsedArguments).addValue("3"); oneOf(parsedArguments).addValue("4"); }}); parseArguments(new String[] { "-a", "1", "2", "-b", "-c", "1", "2", "--", "3", "4" }); }
@Test public void testParseArgumentsOnlyUnparsed() { context.checking(new Expectations() {{ oneOf(parsedArguments).unparsedOptionsFollow(); oneOf(parsedArguments).addValue("3"); oneOf(parsedArguments).addValue("4"); }}); parseArguments(new String[] { "--", "3", "4" }); }
@Test public void testParseArgumentsOnlyUnparsedSeperator() { context.checking(new Expectations() {{ oneOf(parsedArguments).unparsedOptionsFollow(); }}); parseArguments(new String[] { "--" }); }
@Test public void testParseShortArguments() { context.checking(new Expectations() {{ oneOf(parsedArguments).addOption("a"); oneOf(parsedArguments).addOption("b"); oneOf(parsedArguments).addOption("c"); }}); parseArguments(new String[] { "-abc" }); }
@Test public void testParseAssignedValue() { context.checking(new Expectations() {{ oneOf(parsedArguments).addOption("option"); oneOf(parsedArguments).addValue("value"); }}); parseArguments(new String[] { "--option=value" }); }