package org.jenkinsci.plugins.githubautostatus; import hudson.ExtensionList; import io.jenkins.plugins.casc.ConfigurationContext; import io.jenkins.plugins.casc.ConfiguratorRegistry; import io.jenkins.plugins.casc.misc.ConfiguredWithCode; import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule; import io.jenkins.plugins.casc.model.CNode; import org.junit.ClassRule; import org.junit.Test; import static io.jenkins.plugins.casc.misc.Util.*; import static org.hamcrest.core.Is.is; import static org.junit.Assert.*; public class ConfigurationAsCodeTest { @ClassRule @ConfiguredWithCode("configuration-as-code.yml") public static JenkinsConfiguredWithCodeRule j = new JenkinsConfiguredWithCodeRule(); @Test public void should_support_configuration_as_code() { BuildStatusConfig config = ExtensionList.lookupSingleton(BuildStatusConfig.class); assertNotNull(config); assertEquals("test-creds", config.getCredentialsId()); assertEquals(2, config.getDbVersion().intValue()); assertTrue(config.getEnableGithub()); assertTrue(config.getEnableHttp()); assertTrue(config.getEnableInfluxDb()); assertTrue(config.getEnableStatsd()); assertEquals("test-http-creds", config.getHttpCredentialsId()); assertEquals("http://localhost:8088", config.getHttpEndpoint()); assertTrue(config.getHttpVerifySSL()); assertTrue(config.getIgnoreSendingTestCoverageToInflux()); assertTrue(config.getIgnoreSendingTestResultsToInflux()); assertEquals("jenkins", config.getInfluxDbDatabase()); assertEquals("http://localhost:8086", config.getInfluxDbUrl()); assertEquals("bucket", config.getStatsdBucket()); assertEquals("http://localhost:8087", config.getStatsdHost()); assertEquals("1400", config.getStatsdMaxSize()); assertEquals("8125", config.getStatsdPort()); } @Test public void should_support_configuration_export() throws Exception { ConfiguratorRegistry registry = ConfiguratorRegistry.get(); ConfigurationContext context = new ConfigurationContext(registry); CNode buildStatusConfigAttribute = getUnclassifiedRoot(context).get("buildStatusConfig"); String exported = toYamlString(buildStatusConfigAttribute); String expected = toStringFromYamlFile(this, "configuration-as-code-expected.yml"); assertThat(exported, is(expected)); } }