@Override
    public CommandLineImpl parse(final List<String> originalArgs, final Logger logger) {
        return CommandLineImpl.of(originalArgs, logger);
    }
@Test
    public void testRun() throws Exception {
        final CommandLineParserImpl parser = new CommandLineParserImpl();
        final CommandLineImpl commandLine = parse(
                parser,
                "-R--dev",
                "--log-level", "warn",
                "--log-path", "/var/log/some",
                "-Xjruby=file:///some/jruby.jar",
                "-X", "bar=baz",
                "run",
                "-L", "test",
                "-R", "bar",
                "file3.yml",
                "-I", "example");

        assertEquals(Command.RUN, commandLine.getCommand());

        assertEquals(Arrays.asList("file3.yml"), commandLine.getArguments());

        final Properties actualProperties = commandLine.getCommandLineProperties();
        assertEquals(6, actualProperties.size());
        assertEquals(
                "test" + File.separator + "lib" + File.pathSeparator + "example",
                actualProperties.getProperty("jruby_load_path"));
        assertEquals("warn", actualProperties.getProperty("log_level"));
        assertEquals("/var/log/some", actualProperties.getProperty("log_path"));
        assertEquals("--dev,bar", actualProperties.getProperty("jruby_command_line_options"));
        assertEquals("baz", actualProperties.getProperty("bar"));
        assertEquals("file:///some/jruby.jar", actualProperties.getProperty("jruby"));

        assertEquals("", commandLine.getStdOut());
        assertEquals("", commandLine.getStdErr());
    }