package com.sonyericsson.jenkins.plugins.bfa; import net.serenitybdd.screenplay.Actor; import net.serenitybdd.screenplay.Task; import static net.serenitybdd.screenplay.Tasks.instrumented; public class HaveAShellScriptFailureCauseDefined implements Task { public static HaveAShellScriptFailureCauseDefined called(String name) { return instrumented(HaveAShellScriptFailureCauseDefined.class, name); } public HaveAShellScriptFailureCauseDefined describedAs(String description) { this.description = description; return this; } @Override public <T extends Actor> void performAs(T actor) { actor.attemptsTo( UseFailureCauseManagement.to( DefineABuildLogIndicatedFailureCause.called(name). describedAs(description). matching(Build_Log_Pattern) ) ); } public HaveAShellScriptFailureCauseDefined(String name) { this.name = name; } private final String name; private String description = "A shell script has failed"; private static final String Build_Log_Pattern = "Build step 'Execute shell' marked build as failure"; }