package com.cloudbees.hudson.plugins.folder; import com.cloudbees.hudson.plugins.folder.tasks.CreateAFolder; import com.cloudbees.hudson.plugins.folder.user_interface.FolderDetailsPage; import net.serenitybdd.screenplay.jenkins.tasks.configuration.TodoList; import net.serenitybdd.screenplay.Actor; import net.serenitybdd.screenplay.Task; import net.serenitybdd.screenplay.actions.Click; import net.thucydides.core.annotations.Step; import static net.serenitybdd.screenplay.Tasks.instrumented; public class HaveAFolderCreated implements Task { public static HaveAFolderCreated called(String name) { return instrumented(HaveAFolderCreated.class, name); } public Task andInsideIt(Task... createProjects) { configurationTasks.addAll(createProjects); return this; } @Step("{0} creates and configures the '#name' folder") @Override public <T extends Actor> void performAs(T actor) { actor.attemptsTo( CreateAFolder.called(name), configurationTasks, Click.on(FolderDetailsPage.Up_Link) ); } public HaveAFolderCreated(String name) { this.name = name; } private final String name; private final TodoList configurationTasks = TodoList.empty(); }