package net.serenitybdd.screenplay.jenkins.tasks;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Task;
import net.serenitybdd.screenplay.jenkins.tasks.configuration.TodoList;
import net.serenitybdd.screenplay.jenkins.user_interface.NewJobPage;
import net.thucydides.core.annotations.Step;
import static net.serenitybdd.screenplay.Tasks.instrumented;
public class CreateAFreestyleProject implements Task {
public static CreateAFreestyleProject called(String name) {
return instrumented(CreateAFreestyleProject.class, name);
}
public CreateAFreestyleProject andConfigureItTo(Task configurationTask) {
this.configureTheProject.add(configurationTask);
return this;
}
@Override
@Step("{0} creates a 'Freestyle Project' called '#name'")
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
CreateAProject.called(name)
.ofType(NewJobPage.Freestyle_Project)
.andConfigureItTo(this.configureTheProject)
);
}
public CreateAFreestyleProject(String jobName) {
this.name = jobName;
}
private final String name;
private final TodoList configureTheProject = TodoList.empty();
}