-
Notifications
You must be signed in to change notification settings - Fork 748
Expand file tree
/
Copy pathSonarQubeTest.java
More file actions
73 lines (63 loc) · 3.27 KB
/
SonarQubeTest.java
File metadata and controls
73 lines (63 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package io.jenkins.plugins.casc;
import static io.jenkins.plugins.casc.misc.Util.convertYamlFileToJson;
import static io.jenkins.plugins.casc.misc.Util.validateSchema;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.empty;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import hudson.plugins.sonar.SonarGlobalConfiguration;
import hudson.plugins.sonar.SonarInstallation;
import hudson.plugins.sonar.SonarRunnerInstallation;
import hudson.plugins.sonar.model.TriggersConfig;
import hudson.tools.InstallSourceProperty;
import io.jenkins.plugins.casc.misc.ConfiguredWithReadme;
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithReadmeRule;
import jenkins.model.GlobalConfiguration;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
/**
* @author <a href="mailto:[email protected]">Nicolas De Loof</a>
*/
public class SonarQubeTest {
@Rule
public JenkinsConfiguredWithReadmeRule j = new JenkinsConfiguredWithReadmeRule();
@Test
@ConfiguredWithReadme("sonarqube/README.md")
public void configure_sonar_globalconfig() {
final SonarGlobalConfiguration configuration = GlobalConfiguration.all().get(SonarGlobalConfiguration.class);
assertTrue(configuration.isBuildWrapperEnabled());
final SonarInstallation installation = configuration.getInstallations()[0];
assertEquals("TEST", installation.getName());
assertEquals("http://url:9000", installation.getServerUrl());
assertEquals("token", installation.getCredentialsId());
assertEquals("mojoVersion", installation.getMojoVersion());
assertEquals("additionalAnalysisProperties", installation.getAdditionalAnalysisProperties());
final TriggersConfig triggers = installation.getTriggers();
assertTrue(triggers.isSkipScmCause());
assertTrue(triggers.isSkipUpstreamCause());
assertEquals("envVar", triggers.getEnvVar());
// Test SonarQube Scanner tool installation
final SonarRunnerInstallation.DescriptorImpl descriptor =
j.jenkins.getDescriptorByType(SonarRunnerInstallation.DescriptorImpl.class);
assertNotNull("SonarRunnerInstallation descriptor should not be null", descriptor);
final SonarRunnerInstallation[] installations = descriptor.getInstallations();
assertEquals("Should have one SonarQube Scanner installation", 1, installations.length);
assertEquals("SonarQube Scanner", installations[0].getName());
// Verify installer is configured
final InstallSourceProperty installSourceProperty = installations[0].getProperties()
.get(InstallSourceProperty.class);
assertNotNull("InstallSourceProperty should be configured", installSourceProperty);
assertEquals("Should have one installer configured", 1, installSourceProperty.installers.size());
}
@Test
public void validJsonSchema() throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "sonarSchema.yml")), empty());
}
@Test
@Ignore
public void validFullJsonSchema() throws Exception {
assertThat(validateSchema(convertYamlFileToJson(this, "sonarSchemaFull.yml")), empty());
}
}