github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/test/groovy/util/JenkinsErrorRule.groovy (about)

     1  package util
     2  
     3  import com.lesfurets.jenkins.unit.BasePipelineTest
     4  import org.junit.rules.TestRule
     5  import org.junit.runner.Description
     6  import org.junit.runners.model.Statement
     7  
     8  class JenkinsErrorRule implements TestRule {
     9  
    10      final BasePipelineTest testInstance
    11  
    12  
    13      JenkinsErrorRule(BasePipelineTest testInstance) {
    14          this.testInstance = testInstance
    15      }
    16  
    17      @Override
    18      Statement apply(Statement base, Description description) {
    19          return statement(base)
    20      }
    21  
    22      private Statement statement(final Statement base) {
    23          return new Statement() {
    24              @Override
    25              void evaluate() throws Throwable {
    26  
    27                  testInstance.helper.registerAllowedMethod('error', [String], { 
    28                      s -> throw new hudson.AbortException(s) 
    29                  })
    30  
    31                  base.evaluate()
    32              }
    33          }
    34      }
    35  }