package net.serenitybdd.screenplay.interacting_with_jenkins_api.abilities;
import net.serenitybdd.integration.jenkins.client.JenkinsClient;
import net.serenitybdd.screenplay.Ability;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.interacting_with_jenkins_api.exceptions.ActorCannotInteractWithJenkinsApi;
public class InteractWithJenkinsAPI implements Ability {
private final JenkinsClient client;
public static Ability using(JenkinsClient client) {
return new InteractWithJenkinsAPI(client);
}
public static InteractWithJenkinsAPI as(Actor actor) {
if(actor.abilityTo(InteractWithJenkinsAPI.class) == null) {
throw new ActorCannotInteractWithJenkinsApi(actor.getName());
}
return actor.abilityTo(InteractWithJenkinsAPI.class);
}
public void notifyOfExternalProjectSuccessOf(String project) {
client.setExternalBuildResult(project, "0");
}
public void notifyOfExternalProjectFailureOf(String project) {
client.setExternalBuildResult(project, "1");
}
public InteractWithJenkinsAPI(JenkinsClient client) {
this.client = client;
}
}