mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
8a019f5b86
read yaml rule is a very frequently used rule. But having the rule in the common rules means we cannot register text or files to that rule, which makes it less handy to work with yaml files in the tests.
105 lines
4.1 KiB
Groovy
105 lines
4.1 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 jscr = new JenkinsShellCallRule(this)
|
|
private JenkinsDockerExecuteRule jder = new JenkinsDockerExecuteRule(this)
|
|
private JenkinsStepRule jsr = new JenkinsStepRule(this)
|
|
|
|
@Rule
|
|
public RuleChain ruleChain = Rules
|
|
.getCommonRules(this)
|
|
.around(new JenkinsReadYamlRule(this))
|
|
.around(jder)
|
|
.around(jscr)
|
|
.around(jsr)
|
|
|
|
@Test
|
|
void testExecuteBasicMavenCommand() throws Exception {
|
|
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install')
|
|
assertEquals('maven:3.5-jdk-7', jder.dockerParams.dockerImage)
|
|
|
|
assert jscr.shell[0] == 'mvn --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install'
|
|
}
|
|
|
|
@Test
|
|
void testExecuteBasicMavenCommandWithDownloadLogsEnabled() throws Exception {
|
|
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install', logSuccessfulMavenTransfers: true)
|
|
assertEquals('maven:3.5-jdk-7', jder.dockerParams.dockerImage)
|
|
|
|
assert jscr.shell[0] == 'mvn --batch-mode clean install'
|
|
}
|
|
|
|
@Test
|
|
void testExecuteMavenCommandWithParameter() throws Exception {
|
|
|
|
jsr.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', jder.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(jscr.shell.contains(mvnCommand))
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandForwardsDockerOptions() throws Exception {
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install')
|
|
assertEquals('maven:3.5-jdk-7', jder.dockerParams.dockerImage)
|
|
|
|
assertEquals('mvn --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install', jscr.shell[0])
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithShortBatchModeFlag() throws Exception {
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install', flags: '-B')
|
|
assertEquals('maven:3.5-jdk-7', jder.dockerParams.dockerImage)
|
|
|
|
assertEquals('mvn -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn clean install', jscr.shell[0])
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithFalsePositiveMinusBFlag() throws Exception {
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install', flags: '-Blah')
|
|
assertEquals('maven:3.5-jdk-7', jder.dockerParams.dockerImage)
|
|
|
|
assertThat(jscr.shell[0],
|
|
allOf(containsString('-Blah'),
|
|
containsString('--batch-mode')))
|
|
}
|
|
|
|
@Test
|
|
void testMavenCommandWithBatchModeMultiline() throws Exception {
|
|
jsr.step.mavenExecute(script: nullScript, goals: 'clean install', flags: ('''-B\\
|
|
|--show-version''' as CharSequence).stripMargin())
|
|
assertThat(jscr.shell[0], not(containsString('--batch-mode')))
|
|
}
|
|
}
|