github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/test/groovy/util/JenkinsScriptLoaderRule.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 JenkinsScriptLoaderRule implements TestRule {
     9  
    10      final BasePipelineTest testInstance
    11  
    12      final String scriptBasePath
    13  
    14      JenkinsScriptLoaderRule(BasePipelineTest testInstance, String scriptBasePath) {
    15          this.testInstance = testInstance
    16          this.scriptBasePath = scriptBasePath
    17      }
    18  
    19      @Override
    20      Statement apply(Statement base, Description description) {
    21          return statement(base)
    22      }
    23  
    24      private Statement statement(final Statement base) {
    25          return new Statement() {
    26              @Override
    27              void evaluate() throws Throwable {
    28  
    29                  testInstance.helper.registerAllowedMethod("load", [String.class], {
    30                      fileNameIntegration ->
    31                          return testInstance.loadScript("$scriptBasePath/$fileNameIntegration")
    32                  })
    33  
    34                  base.evaluate()
    35              }
    36          }
    37      }
    38  }