1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
sap-jenkins-library/test/groovy/HealthExecuteCheckTest.groovy
Oliver Nocon 17e8390511
add step healthExecuteCheck (#339)
This step allows to perform a basic health check on an installed application.
It verifies that your app has a simple health endpoint available and that there is no error when calling it.
2018-10-12 16:06:41 +02:00

89 lines
2.5 KiB
Groovy

#!groovy
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.rules.ExpectedException
import org.junit.rules.RuleChain
import util.BasePiperTest
import util.JenkinsLoggingRule
import util.JenkinsReadYamlRule
import util.JenkinsStepRule
import util.Rules
import static org.hamcrest.Matchers.*
import static org.junit.Assert.assertThat
class HealthExecuteCheckTest extends BasePiperTest {
private JenkinsStepRule jsr = new JenkinsStepRule(this)
private JenkinsLoggingRule jlr = new JenkinsLoggingRule(this)
private ExpectedException thrown = ExpectedException.none()
@Rule
public RuleChain rules = Rules
.getCommonRules(this)
.around(new JenkinsReadYamlRule(this))
.around(jlr)
.around(jsr)
.around(thrown)
@Before
void init() throws Exception {
// register Jenkins commands with mock values
def command1 = "curl -so /dev/null -w '%{response_code}' http://testserver"
def command2 = "curl -so /dev/null -w '%{response_code}' http://testserver/endpoint"
helper.registerAllowedMethod('sh', [Map.class], {map ->
return map.script == command1 || map.script == command2 ? "200" : "404"
})
}
@Test
void testHealthCheckOk() throws Exception {
def testUrl = 'http://testserver/endpoint'
jsr.step.healthExecuteCheck(
script: nullScript,
testServerUrl: testUrl
)
assertThat(jlr.log, containsString("Health check for ${testUrl} successful"))
}
@Test
void testHealthCheck404() throws Exception {
def testUrl = 'http://testserver/404'
thrown.expect(Exception)
thrown.expectMessage('Health check failed: 404')
jsr.step.healthExecuteCheck(
script: nullScript,
testServerUrl: testUrl
)
}
@Test
void testHealthCheckWithEndPoint() throws Exception {
jsr.step.healthExecuteCheck(
script: nullScript,
testServerUrl: 'http://testserver',
healthEndpoint: 'endpoint'
)
assertThat(jlr.log, containsString("Health check for http://testserver/endpoint successful"))
}
@Test
void testHealthCheckWithEndPointTrailingSlash() throws Exception {
jsr.step.healthExecuteCheck(
script: nullScript,
testServerUrl: 'http://testserver/',
healthEndpoint: 'endpoint'
)
assertThat(jlr.log, containsString("Health check for http://testserver/endpoint successful"))
}
}