2121
2222import com .sonar .orchestrator .Orchestrator ;
2323import com .sonar .orchestrator .build .SonarScanner ;
24+ import java .io .File ;
2425import org .junit .BeforeClass ;
2526import org .junit .ClassRule ;
2627import 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 ;
3433import static org .assertj .core .api .Assertions .assertThat ;
3534
3635public 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 ) {
0 commit comments