package com.smartcodeltd.jenkinsci.plugins.build_monitor.tasks; import com.smartcodeltd.jenkinsci.plugins.build_monitor.tasks.configuration.SaveTheChangesToBuildMonitor; import net.serenitybdd.screenplay.jenkins.tasks.configuration.TodoList; import net.serenitybdd.screenplay.jenkins.user_interface.JenkinsHomePage; import net.serenitybdd.screenplay.jenkins.user_interface.NewViewPage; import net.serenitybdd.screenplay.Actor; import net.serenitybdd.screenplay.Task; import net.serenitybdd.screenplay.actions.Click; import net.serenitybdd.screenplay.actions.Enter; import net.thucydides.core.annotations.Step; import static net.serenitybdd.screenplay.Tasks.instrumented; import static org.openqa.selenium.Keys.ENTER; public class CreateABuildMonitorView implements Task { public static CreateABuildMonitorView called(String name) { return instrumented(CreateABuildMonitorView.class, name); } public Task andConfigureItTo(Task... configurationTasks) { this.configureBuildMonitor.addAll(configurationTasks); return this; } @Override @Step("{0} creates a 'Build Monitor View' called '#buildMonitorName'") public <T extends Actor> void performAs(T actor) { actor.attemptsTo( Click.on(JenkinsHomePage.New_View_link), Click.on(NewViewPage.Build_Monitor_View), Enter.theValue(buildMonitorName).into(NewViewPage.View_Name).thenHit(ENTER), configureBuildMonitor, SaveTheChangesToBuildMonitor.andExitTheConfigurationScreen() ); } public CreateABuildMonitorView(String name) { this.buildMonitorName = name; } private final String buildMonitorName; private final TodoList configureBuildMonitor = TodoList.empty(); }