package net.serenitybdd.integration.jenkins.environment.rules; import net.serenitybdd.integration.jenkins.JenkinsInstance; import net.serenitybdd.screenplay.jenkins.JenkinsUser; import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; public class RegisterUserAccount implements ApplicativeTestRule<JenkinsInstance> { private final JenkinsUser user; public RegisterUserAccount(JenkinsUser user) { this.user = user; } public static RegisterUserAccount of(JenkinsUser user) { return new RegisterUserAccount(user); } @Override public TestRule applyTo(final JenkinsInstance jenkins) { return new TestWatcher() { @Override protected void starting(Description description) { jenkins.client().registerAccount(user.getName(), user.password()); } }; } }