package uk.org.floop.jenkins_pmd
import com.github.tomakehurst.wiremock.junit.WireMockRule
import static com.github.tomakehurst.wiremock.client.WireMock.*
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition
import org.jenkinsci.plugins.workflow.job.WorkflowJob
import org.jenkinsci.plugins.workflow.job.WorkflowRun
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.jvnet.hudson.test.JenkinsRule
class DrafterTests {
@Rule
public JenkinsRule rule = new JenkinsRule()
@Rule
public WireMockRule wireMockRule = new WireMockRule(8123)
@Before
void configureGlobalGitLibraries() {
RuleBootstrapper.setup(rule)
}
@Test
void "testing library that uses declarative pipeline libraries"() {
stubFor(get(urlMatching("/v1/draftsets.*"))
.willReturn(okJson('{"blah"}')))
final CpsFlowDefinition flow = new CpsFlowDefinition('''
echo drafter.listDraftsets('http://localhost:8123', null, 'true')
'''.stripIndent(), true)
final WorkflowJob workflowJob = rule.createProject(WorkflowJob, 'project')
workflowJob.definition = flow
final WorkflowRun firstResult = rule.buildAndAssertSuccess(workflowJob)
rule.assertLogContains('Listing draftsets...', firstResult)
}
}