Skip to content

Commit 959639b

Browse files
julienlancelotpynicolas
authored andcommitted
SONAR-8574 Replace usage of api/resources/index by api/measures/component in ITs (SonarSource#81)
1 parent 2ba062d commit 959639b

6 files changed

Lines changed: 163 additions & 109 deletions

File tree

its/plugin/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
<groupId>org.sonarsource.orchestrator</groupId>
2727
<artifactId>sonar-orchestrator</artifactId>
2828
</dependency>
29+
<dependency>
30+
<groupId>org.sonarsource.sonarqube</groupId>
31+
<artifactId>sonar-ws</artifactId>
32+
<version>${sonar.version}</version>
33+
</dependency>
2934
<dependency>
3035
<groupId>junit</groupId>
3136
<artifactId>junit</artifactId>

its/plugin/src/test/java/com/sonar/python/it/plugin/CoverageTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,11 @@
2424
import com.sonar.orchestrator.Orchestrator;
2525
import com.sonar.orchestrator.build.BuildResult;
2626
import com.sonar.orchestrator.build.SonarScanner;
27-
import org.junit.ClassRule;
28-
import org.junit.Test;
29-
3027
import java.io.File;
3128
import java.util.HashMap;
3229
import java.util.Map;
30+
import org.junit.ClassRule;
31+
import org.junit.Test;
3332

3433
import static com.sonar.python.it.plugin.Tests.getProjectMeasure;
3534
import static org.assertj.core.api.Assertions.assertThat;

its/plugin/src/test/java/com/sonar/python/it/plugin/MetricsTest.java

Lines changed: 92 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@
2121

2222
import com.sonar.orchestrator.Orchestrator;
2323
import com.sonar.orchestrator.build.SonarScanner;
24+
import java.io.File;
2425
import org.junit.BeforeClass;
2526
import org.junit.ClassRule;
2627
import org.junit.Test;
27-
import org.sonar.wsclient.Sonar;
28-
import org.sonar.wsclient.services.Measure;
29-
import org.sonar.wsclient.services.Resource;
30-
import org.sonar.wsclient.services.ResourceQuery;
31-
32-
import java.io.File;
28+
import org.sonarqube.ws.WsMeasures.Measure;
3329

30+
import static com.sonar.python.it.plugin.Tests.getMeasure;
31+
import static com.sonar.python.it.plugin.Tests.getMeasureAsDouble;
32+
import static com.sonar.python.it.plugin.Tests.getMeasureAsInt;
3433
import static org.assertj.core.api.Assertions.assertThat;
3534

3635
public class MetricsTest {
@@ -40,8 +39,6 @@ public class MetricsTest {
4039
@ClassRule
4140
public static Orchestrator orchestrator = Tests.ORCHESTRATOR;
4241

43-
private static Sonar wsClient;
44-
4542
@BeforeClass
4643
public static void startServer() {
4744
orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY);
@@ -53,94 +50,92 @@ public static void startServer() {
5350
.setProjectVersion("1.0-SNAPSHOT")
5451
.setSourceDirs("src");
5552
orchestrator.executeBuild(build);
56-
57-
wsClient = orchestrator.getServer().getWsClient();
5853
}
5954

6055
@Test
6156
public void project_level() {
6257
// Size
63-
assertThat(getProjectMeasure("ncloc").getIntValue()).isEqualTo(1);
64-
assertThat(getProjectMeasure("lines").getIntValue()).isEqualTo(6);
65-
assertThat(getProjectMeasure("files").getIntValue()).isEqualTo(1);
66-
assertThat(getProjectMeasure("statements").getIntValue()).isEqualTo(1);
67-
assertThat(getProjectMeasure("directories").getIntValue()).isEqualTo(1);
68-
assertThat(getProjectMeasure("functions").getIntValue()).isEqualTo(0);
69-
assertThat(getProjectMeasure("classes").getIntValue()).isEqualTo(0);
58+
assertThat(getProjectMeasureAsInt("ncloc")).isEqualTo(1);
59+
assertThat(getProjectMeasureAsInt("lines")).isEqualTo(6);
60+
assertThat(getProjectMeasureAsInt("files")).isEqualTo(1);
61+
assertThat(getProjectMeasureAsInt("statements")).isEqualTo(1);
62+
assertThat(getProjectMeasureAsInt("directories")).isEqualTo(1);
63+
assertThat(getProjectMeasureAsInt("functions")).isEqualTo(0);
64+
assertThat(getProjectMeasureAsInt("classes")).isEqualTo(0);
7065
// Documentation
71-
assertThat(getProjectMeasure("comment_lines").getIntValue()).isEqualTo(1);
72-
assertThat(getProjectMeasure("comment_lines_density").getValue()).isEqualTo(50.0);
66+
assertThat(getProjectMeasureAsInt("comment_lines")).isEqualTo(1);
67+
assertThat(getProjectMeasureAsDouble("comment_lines_density")).isEqualTo(50.0);
7368
// Complexity
74-
assertThat(getProjectMeasure("complexity").getValue()).isEqualTo(0.0);
75-
assertThat(getProjectMeasure("function_complexity")).isNull();
76-
assertThat(getProjectMeasure("function_complexity_distribution").getData()).isEqualTo("1=0;2=0;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
77-
assertThat(getProjectMeasure("file_complexity").getValue()).isEqualTo(0.0);
78-
assertThat(getProjectMeasure("file_complexity_distribution").getData()).isEqualTo("0=1;5=0;10=0;20=0;30=0;60=0;90=0");
69+
assertThat(getProjectMeasureAsDouble("complexity")).isZero();
70+
assertThat(getProjectMeasureAsDouble("function_complexity")).isNull();
71+
assertThat(getProjectMeasure("function_complexity_distribution").getValue()).isEqualTo("1=0;2=0;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
72+
assertThat(getProjectMeasureAsDouble("file_complexity")).isZero();
73+
assertThat(getProjectMeasure("file_complexity_distribution").getValue()).isEqualTo("0=1;5=0;10=0;20=0;30=0;60=0;90=0");
7974
// Duplication
80-
assertThat(getProjectMeasure("duplicated_lines").getValue()).isEqualTo(0.0);
81-
assertThat(getProjectMeasure("duplicated_blocks").getValue()).isEqualTo(0.0);
82-
assertThat(getProjectMeasure("duplicated_files").getValue()).isEqualTo(0.0);
83-
assertThat(getProjectMeasure("duplicated_lines_density").getValue()).isEqualTo(0.0);
75+
assertThat(getProjectMeasureAsDouble("duplicated_lines")).isZero();
76+
assertThat(getProjectMeasureAsDouble("duplicated_blocks")).isZero();
77+
assertThat(getProjectMeasureAsDouble("duplicated_files")).isZero();
78+
assertThat(getProjectMeasureAsDouble("duplicated_lines_density")).isZero();
8479
// Rules
85-
assertThat(getProjectMeasure("violations").getValue()).isEqualTo(0.0);
80+
assertThat(getProjectMeasureAsDouble("violations")).isZero();
8681

87-
assertThat(getProjectMeasure("tests")).isNull();
88-
assertThat(getProjectMeasure("coverage")).isNull();
82+
assertThat(getProjectMeasureAsInt("tests")).isNull();
83+
assertThat(getProjectMeasureAsDouble("coverage")).isNull();
8984
}
9085

9186
@Test
9287
public void directory_level() {
9388
// Size
94-
assertThat(getDirectoryMeasure("ncloc").getIntValue()).isEqualTo(1);
95-
assertThat(getDirectoryMeasure("lines").getIntValue()).isEqualTo(6);
96-
assertThat(getDirectoryMeasure("files").getIntValue()).isEqualTo(1);
97-
assertThat(getDirectoryMeasure("directories").getIntValue()).isEqualTo(1);
98-
assertThat(getDirectoryMeasure("statements").getIntValue()).isEqualTo(1);
99-
assertThat(getDirectoryMeasure("functions").getIntValue()).isEqualTo(0);
100-
assertThat(getDirectoryMeasure("classes").getIntValue()).isEqualTo(0);
89+
assertThat(getDirectoryMeasureAsInt("ncloc")).isEqualTo(1);
90+
assertThat(getDirectoryMeasureAsInt("lines")).isEqualTo(6);
91+
assertThat(getDirectoryMeasureAsInt("files")).isEqualTo(1);
92+
assertThat(getDirectoryMeasureAsInt("directories")).isEqualTo(1);
93+
assertThat(getDirectoryMeasureAsInt("statements")).isEqualTo(1);
94+
assertThat(getDirectoryMeasureAsInt("functions")).isEqualTo(0);
95+
assertThat(getDirectoryMeasureAsInt("classes")).isEqualTo(0);
10196
// Documentation
102-
assertThat(getDirectoryMeasure("comment_lines").getIntValue()).isEqualTo(1);
103-
assertThat(getDirectoryMeasure("comment_lines_density").getValue()).isEqualTo(50.0);
97+
assertThat(getDirectoryMeasureAsInt("comment_lines")).isEqualTo(1);
98+
assertThat(getDirectoryMeasureAsDouble("comment_lines_density")).isEqualTo(50.0);
10499
// Complexity
105-
assertThat(getDirectoryMeasure("complexity").getValue()).isEqualTo(0.0);
106-
assertThat(getDirectoryMeasure("function_complexity")).isNull();
107-
assertThat(getProjectMeasure("function_complexity_distribution").getData()).isEqualTo("1=0;2=0;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
108-
assertThat(getDirectoryMeasure("file_complexity").getValue()).isEqualTo(0.0);
109-
assertThat(getDirectoryMeasure("file_complexity_distribution").getData()).isEqualTo("0=1;5=0;10=0;20=0;30=0;60=0;90=0");
100+
assertThat(getDirectoryMeasureAsDouble("complexity")).isZero();
101+
assertThat(getDirectoryMeasureAsDouble("function_complexity")).isNull();
102+
assertThat(getDirectoryMeasure("function_complexity_distribution").getValue()).isEqualTo("1=0;2=0;4=0;6=0;8=0;10=0;12=0;20=0;30=0");
103+
assertThat(getDirectoryMeasureAsDouble("file_complexity")).isZero();
104+
assertThat(getDirectoryMeasure("file_complexity_distribution").getValue()).isEqualTo("0=1;5=0;10=0;20=0;30=0;60=0;90=0");
110105
// Duplication
111-
assertThat(getDirectoryMeasure("duplicated_lines").getValue()).isEqualTo(0.0);
112-
assertThat(getDirectoryMeasure("duplicated_blocks").getValue()).isEqualTo(0.0);
113-
assertThat(getDirectoryMeasure("duplicated_files").getValue()).isEqualTo(0.0);
114-
assertThat(getDirectoryMeasure("duplicated_lines_density").getValue()).isEqualTo(0.0);
106+
assertThat(getDirectoryMeasureAsDouble("duplicated_lines")).isZero();
107+
assertThat(getDirectoryMeasureAsDouble("duplicated_blocks")).isZero();
108+
assertThat(getDirectoryMeasureAsDouble("duplicated_files")).isZero();
109+
assertThat(getDirectoryMeasureAsDouble("duplicated_lines_density")).isZero();
115110
// Rules
116-
assertThat(getDirectoryMeasure("violations").getValue()).isEqualTo(0.0);
111+
assertThat(getDirectoryMeasureAsDouble("violations")).isZero();
117112
}
118113

119114
@Test
120115
public void file_level() {
121116
// Size
122-
assertThat(getFileMeasure("ncloc").getIntValue()).isEqualTo(1);
123-
assertThat(getFileMeasure("lines").getIntValue()).isEqualTo(6);
124-
assertThat(getFileMeasure("files").getIntValue()).isEqualTo(1);
125-
assertThat(getFileMeasure("statements").getIntValue()).isEqualTo(1);
126-
assertThat(getFileMeasure("functions").getIntValue()).isEqualTo(0);
127-
assertThat(getFileMeasure("classes").getIntValue()).isEqualTo(0);
117+
assertThat(getFileMeasureAsInt("ncloc")).isEqualTo(1);
118+
assertThat(getFileMeasureAsInt("lines")).isEqualTo(6);
119+
assertThat(getFileMeasureAsInt("files")).isEqualTo(1);
120+
assertThat(getFileMeasureAsInt("statements")).isEqualTo(1);
121+
assertThat(getFileMeasureAsInt("functions")).isEqualTo(0);
122+
assertThat(getFileMeasureAsInt("classes")).isEqualTo(0);
128123
// Documentation
129-
assertThat(getFileMeasure("comment_lines").getIntValue()).isEqualTo(1);
130-
assertThat(getFileMeasure("comment_lines_density").getValue()).isEqualTo(50.0);
124+
assertThat(getFileMeasureAsInt("comment_lines")).isEqualTo(1);
125+
assertThat(getFileMeasureAsDouble("comment_lines_density")).isEqualTo(50.0);
131126
// Complexity
132-
assertThat(getFileMeasure("complexity").getValue()).isEqualTo(0.0);
133-
assertThat(getFileMeasure("function_complexity")).isNull();
134-
assertThat(getFileMeasure("function_complexity_distribution")).isNull();
135-
assertThat(getFileMeasure("file_complexity").getValue()).isEqualTo(0.0);
136-
assertThat(getFileMeasure("file_complexity_distribution")).isNull();
127+
assertThat(getFileMeasureAsDouble("complexity")).isZero();
128+
assertThat(getFileMeasureAsDouble("function_complexity")).isNull();
129+
assertThat(getFileMeasureAsDouble("function_complexity_distribution")).isNull();
130+
assertThat(getFileMeasureAsDouble("file_complexity")).isZero();
131+
assertThat(getFileMeasureAsDouble("file_complexity_distribution")).isNull();
137132
// Duplication
138-
assertThat(getFileMeasure("duplicated_lines")).isNull();
139-
assertThat(getFileMeasure("duplicated_blocks")).isNull();
140-
assertThat(getFileMeasure("duplicated_files")).isNull();
141-
assertThat(getFileMeasure("duplicated_lines_density")).isNull();
133+
assertThat(getFileMeasureAsInt("duplicated_lines")).isZero();
134+
assertThat(getFileMeasureAsInt("duplicated_blocks")).isZero();
135+
assertThat(getFileMeasureAsInt("duplicated_files")).isZero();
136+
assertThat(getFileMeasureAsDouble("duplicated_lines_density")).isZero();
142137
// Rules
143-
assertThat(getFileMeasure("violations")).isNull();
138+
assertThat(getFileMeasureAsInt("violations")).isZero();
144139
}
145140

146141
/**
@@ -149,29 +144,50 @@ public void file_level() {
149144
@Test
150145
public void should_be_compatible_with_DevCockpit() {
151146
// TODO probably bug in Sonar: order might depend on JVM
152-
assertThat(getFileMeasure("ncloc_data").getData())
147+
assertThat(getFileMeasure("ncloc_data").getValue())
153148
.doesNotContain("1=1")
154149
.contains("5=1");
155-
assertThat(getFileMeasure("comment_lines_data").getData())
150+
assertThat(getFileMeasure("comment_lines_data").getValue())
156151
.contains("2=1")
157152
.doesNotContain("4=1");
158153
}
159154

160155
/* Helper methods */
161156

162157
private Measure getProjectMeasure(String metricKey) {
163-
Resource resource = wsClient.find(ResourceQuery.createForMetrics(PROJECT_KEY, metricKey));
164-
return resource == null ? null : resource.getMeasure(metricKey);
158+
return getMeasure(PROJECT_KEY, metricKey);
159+
}
160+
161+
private Integer getProjectMeasureAsInt(String metricKey) {
162+
return getMeasureAsInt(PROJECT_KEY, metricKey);
163+
}
164+
165+
private Double getProjectMeasureAsDouble(String metricKey) {
166+
return getMeasureAsDouble(PROJECT_KEY, metricKey);
165167
}
166168

167169
private Measure getDirectoryMeasure(String metricKey) {
168-
Resource resource = wsClient.find(ResourceQuery.createForMetrics(keyFor("dir"), metricKey));
169-
return resource == null ? null : resource.getMeasure(metricKey);
170+
return getMeasure(keyFor("dir"), metricKey);
171+
}
172+
173+
private Integer getDirectoryMeasureAsInt(String metricKey) {
174+
return getMeasureAsInt(keyFor("dir"), metricKey);
175+
}
176+
177+
private Double getDirectoryMeasureAsDouble(String metricKey) {
178+
return getMeasureAsDouble(keyFor("dir"), metricKey);
170179
}
171180

172181
private Measure getFileMeasure(String metricKey) {
173-
Resource resource = wsClient.find(ResourceQuery.createForMetrics(keyFor("dir/HelloWorld.py"), metricKey));
174-
return resource == null ? null : resource.getMeasure(metricKey);
182+
return getMeasure(keyFor("dir/HelloWorld.py"), metricKey);
183+
}
184+
185+
private Integer getFileMeasureAsInt(String metricKey) {
186+
return getMeasureAsInt(keyFor("dir/HelloWorld.py"), metricKey);
187+
}
188+
189+
private Double getFileMeasureAsDouble(String metricKey) {
190+
return getMeasureAsDouble(keyFor("dir/HelloWorld.py"), metricKey);
175191
}
176192

177193
private static String keyFor(String s) {

its/plugin/src/test/java/com/sonar/python/it/plugin/NoSonarTest.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@
2121

2222
import com.sonar.orchestrator.Orchestrator;
2323
import com.sonar.orchestrator.build.SonarScanner;
24+
import java.io.File;
2425
import org.junit.BeforeClass;
2526
import org.junit.ClassRule;
2627
import org.junit.Test;
27-
import org.sonar.wsclient.Sonar;
28-
import org.sonar.wsclient.services.Measure;
29-
import org.sonar.wsclient.services.Resource;
30-
import org.sonar.wsclient.services.ResourceQuery;
31-
32-
import java.io.File;
3328

29+
import static com.sonar.python.it.plugin.Tests.getMeasureAsInt;
3430
import static org.assertj.core.api.Assertions.assertThat;
3531

3632
public class NoSonarTest {
@@ -40,8 +36,6 @@ public class NoSonarTest {
4036
@ClassRule
4137
public static Orchestrator orchestrator = Tests.ORCHESTRATOR;
4238

43-
private static Sonar wsClient;
44-
4539
@BeforeClass
4640
public static void startServer() {
4741
orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_KEY);
@@ -53,20 +47,16 @@ public static void startServer() {
5347
.setProjectVersion("1.0-SNAPSHOT")
5448
.setSourceDirs(".");
5549
orchestrator.executeBuild(build);
56-
57-
wsClient = orchestrator.getServer().getWsClient();
5850
}
5951

6052
@Test
6153
public void test_nosonar() {
62-
assertThat(getProjectMeasure("violations").getValue()).isEqualTo(1.0);
54+
assertThat(getProjectMeasureAsInt("violations")).isEqualTo(1);
6355
}
6456

65-
6657
/* Helper methods */
6758

68-
private Measure getProjectMeasure(String metricKey) {
69-
Resource resource = wsClient.find(ResourceQuery.createForMetrics(PROJECT_KEY, metricKey));
70-
return resource == null ? null : resource.getMeasure(metricKey);
59+
private Integer getProjectMeasureAsInt(String metricKey) {
60+
return getMeasureAsInt(PROJECT_KEY, metricKey);
7161
}
7262
}

its/plugin/src/test/java/com/sonar/python/it/plugin/TestReportTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,13 @@
2626
import com.sonar.orchestrator.Orchestrator;
2727
import com.sonar.orchestrator.build.BuildResult;
2828
import com.sonar.orchestrator.build.SonarScanner;
29-
import org.junit.Before;
30-
import org.junit.ClassRule;
31-
import org.junit.Test;
32-
3329
import java.io.File;
3430
import java.util.HashMap;
3531
import java.util.Map;
3632
import java.util.Set;
33+
import org.junit.Before;
34+
import org.junit.ClassRule;
35+
import org.junit.Test;
3736

3837
import static com.sonar.python.it.plugin.Tests.assertProjectMeasures;
3938
import static org.assertj.core.api.Assertions.assertThat;
@@ -101,7 +100,6 @@ public void invalid_test_report() throws Exception {
101100
BuildResult result = orchestrator.executeBuildQuietly(createBuild("invalid_report.xml"));
102101
assertThat(result.isSuccess()).isFalse();
103102
assertThat(result.getLogs()).contains("Cannot feed the data into sonar");
104-
assertProjectMeasures(PROJECT, nullMeasures());
105103
}
106104

107105
private Map<String, Integer> nullMeasures() {

0 commit comments

Comments
 (0)