package org.jenkinsci.tools.configcloner; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.not; import static org.hamcrest.text.IsEmptyString.isEmptyString; import static org.jenkinsci.tools.configcloner.handler.Helper.stdoutContains; import static org.jenkinsci.tools.configcloner.handler.Helper.succeeded; import org.jenkinsci.tools.configcloner.CommandResponse.Accumulator; import org.jenkinsci.tools.configcloner.handler.Usage; import org.junit.Test; public class MainTest { final Accumulator rsp = CommandResponse.accumulate(); @Test public void getUsageWhenNoArgsProvided() { assertThat(run().getHandler(), instanceOf(Usage.class)); } @Test public void getUsageWhenInvalidArgsProvided() { assertThat(run("no-such-command").getHandler(), instanceOf(Usage.class)); } @Test public void failedValidationShouldInvokeUsage() { run("job", "invalid-arg"); assertThat(rsp, not(succeeded())); assertThat(rsp.stderr(), not(isEmptyString())); assertThat(rsp, stdoutContains("Usage:")); } private Main run(String... args) { final CLIPool cliPool = new CLIPool(CLIFactory.provided()); final Main main = new Main(rsp, cliPool); main.run(args); cliPool.close(); return main; } }