package net.serenitybdd.screenplay.jenkins;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Task;
import net.serenitybdd.screenplay.actions.Click;
import net.serenitybdd.screenplay.jenkins.tasks.CreateAFreestyleProject;
import net.serenitybdd.screenplay.jenkins.tasks.configuration.TodoList;
import net.thucydides.core.annotations.Step;
import static net.serenitybdd.screenplay.Tasks.instrumented;
import static net.serenitybdd.screenplay.jenkins.user_interface.navigation.SidePanel.Back_to_Dashboard;
public class HaveAProjectCreated implements Task {
public static HaveAProjectCreated called(String name) {
return instrumented(HaveAProjectCreated.class, name);
}
public Task andConfiguredTo(Task... configurationTasks) {
this.requiredConfiguration.addAll(configurationTasks);
return this;
}
@Step("{0} creates the '#projectName' project")
@Override
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
CreateAFreestyleProject.called(projectName).andConfigureItTo(requiredConfiguration),
Click.on(Back_to_Dashboard)
);
}
public HaveAProjectCreated(String projectName) {
this.projectName = projectName;
}
private final String projectName;
private final TodoList requiredConfiguration = TodoList.empty();
}