blob: c450b8b93c5218f8d5bfbb405deea4e1fdd1881a [file] [log] [blame]
package com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.scenarios.tasks;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.pageobjects.bfa.FailureCauseManagement;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.pageobjects.bfa.NewFailureCause;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.pageobjects.jenkins.HomePage;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.pageobjects.jenkins.NewView;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.scenarios.actions.Action;
import org.jvnet.hudson.test.JenkinsRule;
import org.openqa.selenium.WebDriver;
import java.util.ArrayList;
import java.util.List;
import static com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.scenarios.actions.Click.click;
import static com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.scenarios.actions.Enter.enter;
import static com.smartcodeltd.jenkinsci.plugins.buildmonitor_acceptance.scenarios.actions.Navigate.navigateTo;
public class DefineBuildFailureCause implements Action {
public static DefineBuildFailureCause defineABuildFailureCause(String name, String description, String pattern) {
return new DefineBuildFailureCause(name, description, pattern);
}
@Override
public void executeUsing(JenkinsRule jenkins, WebDriver browser) throws Exception {
for(Action action : configurationPlan) {
action.executeUsing(jenkins, browser);
}
}
private List<Action> configurationPlan;
private DefineBuildFailureCause(final String name, final String description, final String pattern) {
this.configurationPlan = new ArrayList<Action>() {{
HomePage homePage = HomePage.screen();
add(navigateTo(homePage));
add(click(homePage.navigation().failureCauseManagement()));
// transition
add(click(FailureCauseManagement.screen().createNew()));
// transition
NewFailureCause failureCause = NewFailureCause.screen();
add(enter(name, failureCause.name()));
add(enter(description, failureCause.description()));
add(click(failureCause.addIndication()));
add(click(failureCause.buildLogIndication()));
add(enter(pattern, failureCause.pattern()));
add(click(failureCause.save()));
}};
}
}