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/com/sap/piper/analytics/InfluxDataTest.groovy
Christopher Fenner e67b9cff23
influxWriteData: hold data in dedicated object (#624)
* add InfluxData object

* add InfluxData rule

* use InfluxData

* include jenkins_custom_data into InfluxData object

* correct typo

* add missing import

* fix condition for influx reporting

* add test class

* Update influxWriteData.groovy
2019-04-11 11:39:41 +02:00

105 lines
3.9 KiB
Groovy

package com.sap.piper.analytics
import org.junit.Rule
import org.junit.Before
import org.junit.Test
import static org.junit.Assert.assertThat
import static org.junit.Assume.assumeThat
import org.junit.rules.ExpectedException
import org.junit.rules.RuleChain
import static org.hamcrest.Matchers.containsString
import static org.hamcrest.Matchers.hasItem
import static org.hamcrest.Matchers.is
import static org.hamcrest.Matchers.not
import static org.hamcrest.Matchers.empty
import static org.hamcrest.Matchers.hasKey
import static org.hamcrest.Matchers.allOf
import static org.hamcrest.Matchers.hasEntry
import util.JenkinsLoggingRule
import util.JenkinsShellCallRule
import util.BasePiperTest
import util.Rules
class InfluxDataTest extends BasePiperTest {
private ExpectedException thrown = ExpectedException.none()
private JenkinsLoggingRule jlr = new JenkinsLoggingRule(this)
private JenkinsShellCallRule jscr = new JenkinsShellCallRule(this)
@Rule
public RuleChain rules = Rules
.getCommonRules(this)
.around(thrown)
.around(jscr)
.around(jlr)
@Before
void setup() {
InfluxData.instance = null
}
@Test
void testCreateInstance() {
InfluxData.getInstance()
// asserts
assertThat(InfluxData.instance.fields, allOf(
is(not(null)),
hasKey('jenkins_custom_data'),
hasKey('pipeline_data'),
hasKey('step_data')
))
assertThat(InfluxData.instance.fields.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.fields.pipeline_data, is([:]))
assertThat(InfluxData.instance.fields.step_data, is([:]))
assertThat(InfluxData.instance.tags, allOf(
is(not(null)),
hasKey('jenkins_custom_data'),
hasKey('pipeline_data'),
hasKey('step_data')
))
assertThat(InfluxData.instance.tags.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.tags.pipeline_data, is([:]))
assertThat(InfluxData.instance.tags.step_data, is([:]))
}
@Test
void testAddToDefaultMeasurement() {
InfluxData.addField('step_data', 'anyKey', 'anyValue')
InfluxData.addTag('step_data', 'anyKey', 'anyTag')
// asserts
assertThat(InfluxData.instance.fields.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.fields.pipeline_data, is([:]))
assertThat(InfluxData.instance.fields.step_data, is(['anyKey': 'anyValue']))
assertThat(InfluxData.instance.tags.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.tags.pipeline_data, is([:]))
assertThat(InfluxData.instance.tags.step_data, is(['anyKey': 'anyTag']))
}
@Test
void testAddToNewMeasurement() {
InfluxData.addField('new_measurement_data', 'anyKey', 'anyValue')
InfluxData.addTag('new_measurement_data', 'anyKey', 'anyTag')
// asserts
assertThat(InfluxData.instance.fields.new_measurement_data, is(['anyKey': 'anyValue']))
assertThat(InfluxData.instance.fields.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.fields.pipeline_data, is([:]))
assertThat(InfluxData.instance.fields.step_data, is([:]))
assertThat(InfluxData.instance.tags.new_measurement_data, is(['anyKey': 'anyTag']))
assertThat(InfluxData.instance.tags.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.tags.pipeline_data, is([:]))
assertThat(InfluxData.instance.tags.step_data, is([:]))
}
@Test
void testResetInstance() {
InfluxData.addField('step_data', 'anyKey', 'anyValue')
assumeThat(InfluxData.instance.fields.step_data, is(['anyKey': 'anyValue']))
InfluxData.reset()
// asserts
assertThat(InfluxData.instance.fields.jenkins_custom_data, is([:]))
assertThat(InfluxData.instance.fields.pipeline_data, is([:]))
assertThat(InfluxData.instance.fields.step_data, is([:]))
}
}