package net.serenitybdd.screenplay.jenkins.tasks.configuration.build_steps;
import net.serenitybdd.screenplay.jenkins.actions.EnterCode;
import net.serenitybdd.screenplay.jenkins.user_interface.project_configuration.build_steps.ShellBuildStep;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Task;
import net.thucydides.core.annotations.Step;
import static net.serenitybdd.screenplay.Tasks.instrumented;
public class ExecuteAShellScript implements Task {
public static Task that(ShellScript expectedOutcome) {
return instrumented(ExecuteAShellScript.class, expectedOutcome);
}
@Step("{0} configures the Shell Step to execute a script that '#scriptOutcome'")
@Override
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
AddABuildStep.called("Execute shell"),
EnterCode.asFollows(scriptOutcome.code()).intoTheCodeMirror(ShellBuildStep.Editor)
);
}
public ExecuteAShellScript(ShellScript script) {
this.scriptOutcome = script;
}
private final ShellScript scriptOutcome;
}