github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/test/groovy/util/JenkinsPiperExecuteBinRule.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 JenkinsPiperExecuteBinRule implements TestRule {
     9      final BasePipelineTest testInstance
    10  
    11      def env
    12  
    13    JenkinsPiperExecuteBinRule(BasePipelineTest testInstance) {
    14          this.testInstance = testInstance
    15      }
    16  
    17      @Override
    18      Statement apply(Statement base, Description description) {
    19          return new Statement() {
    20              @Override
    21              void evaluate() throws Throwable {
    22                  def piperExecuteBin = testInstance.loadScript('piperExecuteBin.groovy').piperExecuteBin
    23                  try {
    24                      testInstance?.nullScript.piperExecuteBin = piperExecuteBin
    25                  } catch (MissingPropertyException e) {
    26                      //kept for backward compatibility before all tests inherit from BasePiperTest
    27                  }
    28                  base.evaluate()
    29              }
    30          }
    31      }
    32  }