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