package net.serenitybdd.screenplay.jenkins.tasks; import net.serenitybdd.screenplay.Actor; import net.serenitybdd.screenplay.Task; import net.serenitybdd.screenplay.actions.Click; import net.serenitybdd.screenplay.actions.Enter; import net.serenitybdd.screenplay.jenkins.JenkinsUser; import net.serenitybdd.screenplay.jenkins.user_interface.JenkinsHomePage; import net.serenitybdd.screenplay.jenkins.user_interface.LogInForm; import net.thucydides.core.annotations.Step; import static net.serenitybdd.screenplay.Tasks.instrumented; public class LogIn implements Task { public static LogIn as(JenkinsUser actor) { return instrumented(LogIn.class, actor); } @Step("{0} logs in") @Override public <T extends Actor> void performAs(T actor) { actor.attemptsTo( Click.on(JenkinsHomePage.Log_In_Link), Enter.theValue(actor.getName()).into(LogInForm.Username_Field), Enter.theValue(passwordOf(actor)).into(LogInForm.Password_Field), Click.on(LogInForm.Log_In_Buttton) ); } private String passwordOf(Actor actor) { return ((JenkinsUser) actor).password(); } private final JenkinsUser user; public LogIn(JenkinsUser actor) { this.user = actor; } }