From 93099f4d1f8e17ae0bf22b306104aebdb315371d Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 27 Apr 2015 15:17:41 +0200 Subject: [PATCH] SONAR-6338 Fix issue on uncovered lines --- .../source/CoverageLineReader.java | 20 +++++----------- .../source/CoverageLineReaderTest.java | 23 +++++++++++++++---- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/source/CoverageLineReader.java b/server/sonar-server/src/main/java/org/sonar/server/computation/source/CoverageLineReader.java index 7f6684a714d..277089a3cae 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/source/CoverageLineReader.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/source/CoverageLineReader.java @@ -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()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/source/CoverageLineReaderTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/source/CoverageLineReaderTest.java index 3f89a5da323..1e8fa696cab 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/source/CoverageLineReaderTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/source/CoverageLineReaderTest.java @@ -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); -- 2.39.5