package hudson.cli;
import static hudson.cli.CLICommandInvoker.Matcher.failedWith;
import static hudson.cli.CLICommandInvoker.Matcher.succeededSilently;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import jenkins.model.Jenkins;
import hudson.cli.CLICommandInvoker;
import hudson.cli.CLICommandInvoker.Result;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
public class CLIRegistererTest {
@Rule
public JenkinsRule j = new JenkinsRule();
@Test
public void testAuthWithSecurityRealmCLIAuthenticator() {
j.getInstance().setSecurityRealm(j.createDummySecurityRealm());
CLICommandInvoker command = new CLICommandInvoker(j, "quiet-down");
Result invocation = command.invokeWithArgs("--username", "foo", "--password", "invalid");
assertThat(invocation, failedWith(7));
assertThat(invocation.stderr(), containsString("ERROR: Bad Credentials. Search the server log for "));
assertThat("Unauthorized command was executed", Jenkins.getInstance().isQuietingDown(), is(false));
invocation = command.invokeWithArgs("--username", "foo", "--password", "foo");
assertThat(invocation, succeededSilently());
assertThat("Authorized command was not executed", Jenkins.getInstance().isQuietingDown(), is(true));
}
}