public AgentBootstrapperArgs parse(String... args) {
        AgentBootstrapperArgs result = new AgentBootstrapperArgs();
        try {
            new JCommander(result).parse(args);

            if (result.help) {
                printUsageAndExit(0);
            }

            return result;
        } catch (ParameterException e) {
            stderr.println(e.getMessage());
            printUsageAndExit(1);
        }

        return null;
    }
@Test
    public void shouldRaiseExceptionWhenSSLPrivateKeyFileIsNotPresent() {
        assertThatCode(() -> agentCLI.parse("-serverUrl", "http://example.com/go", "-sslPrivateKeyFile", UUID.randomUUID().toString()))
                .isInstanceOf(ExitException.class)
                .satisfies(o -> assertThat(((ExitException) o).getStatus()).isEqualTo(1));

        assertThat(errorStream.toString()).contains("-sslPrivateKeyFile must be a file that is readable.");
    }