]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6338 Fix issue on uncovered lines
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 27 Apr 2015 13:17:41 +0000 (15:17 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 27 Apr 2015 14:35:48 +0000 (16:35 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/source/CoverageLineReader.java
server/sonar-server/src/test/java/org/sonar/server/computation/source/CoverageLineReaderTest.java

index 7f6684a714d2e368640d7df42b2677041e7ab97a..277089a3caedaa812c330ace120cb187a2c10190 100644 (file)
@@ -48,8 +48,8 @@ public class CoverageLineReader implements LineReader {
   }
 
   private static void processUnitTest(FileSourceDb.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){
-    if (hasUnitTests(reportCoverage)) {
-      lineBuilder.setUtLineHits(1);
+    if (reportCoverage.hasUtHits()) {
+      lineBuilder.setUtLineHits(reportCoverage.getUtHits() ? 1 : 0);
     }
     if (reportCoverage.hasConditions() && reportCoverage.hasUtCoveredConditions()) {
       lineBuilder.setUtConditions(reportCoverage.getConditions());
@@ -57,13 +57,9 @@ public class CoverageLineReader implements LineReader {
     }
   }
 
-  private static boolean hasUnitTests(BatchReport.Coverage reportCoverage){
-    return reportCoverage.hasUtHits() && reportCoverage.getUtHits();
-  }
-
   private static void processIntegrationTest(FileSourceDb.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){
-    if (hasIntegrationTests(reportCoverage)) {
-      lineBuilder.setItLineHits(1);
+    if (reportCoverage.hasItHits()) {
+      lineBuilder.setItLineHits(reportCoverage.getItHits() ? 1 : 0);
     }
     if (reportCoverage.hasConditions() && reportCoverage.hasItCoveredConditions()) {
       lineBuilder.setItConditions(reportCoverage.getConditions());
@@ -71,13 +67,9 @@ public class CoverageLineReader implements LineReader {
     }
   }
 
-  private static boolean hasIntegrationTests(BatchReport.Coverage reportCoverage){
-    return reportCoverage.hasItHits() && reportCoverage.getItHits();
-  }
-
   private static void processOverallTest(FileSourceDb.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){
-    if (hasUnitTests(reportCoverage) || hasIntegrationTests(reportCoverage)) {
-      lineBuilder.setOverallLineHits(1);
+    if (reportCoverage.hasUtHits() || reportCoverage.hasItHits()) {
+      lineBuilder.setOverallLineHits((reportCoverage.getUtHits() || reportCoverage.getItHits()) ? 1 : 0);
     }
     if (reportCoverage.hasConditions() && reportCoverage.hasOverallCoveredConditions()) {
       lineBuilder.setOverallConditions(reportCoverage.getConditions());
index 3f89a5da323033f2f88d5946656561c34f952d91..1e8fa696cabec09ad97667f8476103707f2271da 100644 (file)
@@ -56,15 +56,28 @@ public class CoverageLineReaderTest {
   }
 
   @Test
-  public void set_coverage_without_line_hits() throws Exception {
+  public void set_coverage_on_uncovered_lines() throws Exception {
     CoverageLineReader computeCoverageLine = new CoverageLineReader(newArrayList(BatchReport.Coverage.newBuilder()
       .setLine(1)
-      .setConditions(10)
       .setUtHits(false)
-      .setUtCoveredConditions(2)
       .setItHits(false)
-      .setItCoveredConditions(3)
-      .setOverallCoveredConditions(4)
+      .build()).iterator());
+
+    FileSourceDb.Line.Builder lineBuilder = FileSourceDb.Data.newBuilder().addLinesBuilder().setLine(1);
+    computeCoverageLine.read(lineBuilder);
+
+    assertThat(lineBuilder.hasUtLineHits()).isTrue();
+    assertThat(lineBuilder.getUtLineHits()).isEqualTo(0);
+    assertThat(lineBuilder.hasItLineHits()).isTrue();
+    assertThat(lineBuilder.getItLineHits()).isEqualTo(0);
+    assertThat(lineBuilder.hasOverallLineHits()).isTrue();
+    assertThat(lineBuilder.getOverallLineHits()).isEqualTo(0);
+  }
+
+  @Test
+  public void set_coverage_without_line_hits() throws Exception {
+    CoverageLineReader computeCoverageLine = new CoverageLineReader(newArrayList(BatchReport.Coverage.newBuilder()
+      .setLine(1)
       .build()).iterator());
 
     FileSourceDb.Line.Builder lineBuilder = FileSourceDb.Data.newBuilder().addLinesBuilder().setLine(1);