mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
105 lines
4.3 KiB
Groovy
105 lines
4.3 KiB
Groovy
import org.junit.Rule
|
|
import org.junit.Test
|
|
import org.junit.rules.RuleChain
|
|
|
|
import util.BasePiperTest
|
|
import util.JenkinsDockerExecuteRule
|
|
import util.JenkinsReadYamlRule
|
|
import util.JenkinsShellCallRule
|
|
import util.JenkinsStepRule
|
|
import util.Rules
|
|
|
|
import static org.hamcrest.Matchers.allOf
|
|
import static org.hamcrest.Matchers.containsString
|
|
import static org.hamcrest.Matchers.containsString
|
|
import static org.hamcrest.Matchers.not
|
|
import static org.junit.Assert.assertEquals
|
|
import static org.junit.Assert.assertThat
|
|
import static org.junit.Assert.assertTrue
|
|
|
|
class MavenExecuteTest extends BasePiperTest {
|
|
|
|
Map dockerParameters
|
|
|
|
private JenkinsShellCallRule shellRule = new JenkinsShellCallRule(this)
|
|
private JenkinsDockerExecuteRule dockerExecuteRule = new JenkinsDockerExecuteRule(this)
|
|
private JenkinsStepRule stepRule = new JenkinsStepRule(this)
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules
|
|
.getCommonRules(this)
|
|
.around(new JenkinsReadYamlRule(this))
|
|
.around(dockerExecuteRule)
|
|
.around(shellRule)
|
|
.around(stepRule)
|
|
|
|
@Test
|
|
void testExecuteBasicMavenCommand() throws Exception {
|
|
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install')
|
|
assertEquals('maven:3.5-jdk-7', dockerExecuteRule.dockerParams.dockerImage)
|
|
|
|
assert shellRule.shell[0] == 'mvn --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install'
|
|
}
|
|
|
|
@Test
|
|
void testExecuteBasicMavenCommandWithDownloadLogsEnabled() throws Exception {
|
|
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install', logSuccessfulMavenTransfers: true)
|
|
assertEquals('maven:3.5-jdk-7', dockerExecuteRule.dockerParams.dockerImage)
|
|
|
|
assert shellRule.shell[0] == 'mvn --batch-mode clean install'
|
|
}
|
|
|
|
@Test
|
|
void testExecuteMavenCommandWithParameter() throws Exception {
|
|
|
|
stepRule.step.mavenExecute(
|
|
script: nullScript,
|
|
dockerImage: 'maven:3.5-jdk-8-alpine',
|
|
goals: 'clean install',
|
|
globalSettingsFile: 'globalSettingsFile.xml',
|
|
projectSettingsFile: 'projectSettingsFile.xml',
|
|
pomPath: 'pom.xml',
|
|
flags: '-o',
|
|
m2Path: 'm2Path',
|
|
defines: '-Dmaven.tests.skip=true')
|
|
assertEquals('maven:3.5-jdk-8-alpine', dockerExecuteRule.dockerParams.dockerImage)
|
|
String mvnCommand = "mvn --global-settings 'globalSettingsFile.xml' -Dmaven.repo.local='m2Path' --settings 'projectSettingsFile.xml' --file 'pom.xml' -o --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install -Dmaven.tests.skip=true"
|
|
assertTrue(shellRule.shell.contains(mvnCommand))
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandForwardsDockerOptions() throws Exception {
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install')
|
|
assertEquals('maven:3.5-jdk-7', dockerExecuteRule.dockerParams.dockerImage)
|
|
|
|
assertEquals('mvn --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install', shellRule.shell[0])
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithShortBatchModeFlag() throws Exception {
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install', flags: '-B')
|
|
assertEquals('maven:3.5-jdk-7', dockerExecuteRule.dockerParams.dockerImage)
|
|
|
|
assertEquals('mvn -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install', shellRule.shell[0])
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithFalsePositiveMinusBFlag() throws Exception {
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install', flags: '-Blah')
|
|
assertEquals('maven:3.5-jdk-7', dockerExecuteRule.dockerParams.dockerImage)
|
|
|
|
assertThat(shellRule.shell[0],
|
|
allOf(containsString('-Blah'),
|
|
containsString('--batch-mode')))
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithBatchModeMultiline() throws Exception {
|
|
stepRule.step.mavenExecute(script: nullScript, goals: 'clean install', flags: ('''-B\\
|
|
|--show-version''' as CharSequence).stripMargin())
|
|
assertThat(shellRule.shell[0], not(containsString('--batch-mode')))
|
|
}
|
|
}
|