Skip to content

Commit

Permalink
Fix some quality flaws
Browse files Browse the repository at this point in the history
  • Loading branch information
henryju committed Apr 29, 2015
1 parent a60633c commit 3eb4058
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 39 deletions.
Expand Up @@ -36,8 +36,8 @@ public abstract class SensorMatcher implements BatchExtension, ExtensionMatcher

@Override
public final boolean accept(Object extension) {
return ClassUtils.isAssignable(extension.getClass(), Sensor.class)
&& acceptSensor((Sensor) extension) || ClassUtils.isAssignable(extension.getClass(), org.sonar.api.batch.sensor.Sensor.class);
return (ClassUtils.isAssignable(extension.getClass(), Sensor.class) && acceptSensor((Sensor) extension))
|| ClassUtils.isAssignable(extension.getClass(), org.sonar.api.batch.sensor.Sensor.class);
}

public abstract boolean acceptSensor(Sensor sensor);
Expand Down
Expand Up @@ -41,12 +41,47 @@

public class TestExecutionAndCoveragePublisher implements ReportPublisherStep {

private final class FunctionImplementation implements Function<String, CoverageDetail> {
private final class TestConverter implements Function<MutableTestCase, BatchReport.Test> {
private final Set<String> testNamesWithCoverage;
private BatchReport.Test.Builder builder = BatchReport.Test.newBuilder();

private TestConverter(Set<String> testNamesWithCoverage) {
this.testNamesWithCoverage = testNamesWithCoverage;
}

@Override
public Test apply(MutableTestCase testCase) {
builder.clear();
builder.setName(testCase.name());
if (testCase.doesCover()) {
testNamesWithCoverage.add(testCase.name());
}
Long durationInMs = testCase.durationInMs();
if (durationInMs != null) {
builder.setDurationInMs(durationInMs);
}
String msg = testCase.message();
if (msg != null) {
builder.setMsg(msg);
}
String stack = testCase.stackTrace();
if (stack != null) {
builder.setStacktrace(stack);
}
TestCase.Status status = testCase.status();
if (status != null) {
builder.setStatus(TestStatus.valueOf(status.name()));
}
return builder.build();
}
}

private final class TestCoverageConverter implements Function<String, CoverageDetail> {
private final MutableTestPlan testPlan;
private BatchReport.CoverageDetail.Builder builder = BatchReport.CoverageDetail.newBuilder();
private BatchReport.CoverageDetail.CoveredFile.Builder coveredBuilder = BatchReport.CoverageDetail.CoveredFile.newBuilder();

private FunctionImplementation(MutableTestPlan testPlan) {
private TestCoverageConverter(MutableTestPlan testPlan) {
this.testPlan = testPlan;
}

Expand Down Expand Up @@ -95,39 +130,9 @@ public void publish(BatchReportWriter writer) {

final Set<String> testNamesWithCoverage = new HashSet<>();

writer.writeTests(resource.batchId(), Iterables.transform(testPlan.testCases(), new Function<MutableTestCase, BatchReport.Test>() {

private BatchReport.Test.Builder builder = BatchReport.Test.newBuilder();

@Override
public Test apply(MutableTestCase testCase) {
builder.clear();
builder.setName(testCase.name());
if (testCase.doesCover()) {
testNamesWithCoverage.add(testCase.name());
}
Long durationInMs = testCase.durationInMs();
if (durationInMs != null) {
builder.setDurationInMs(durationInMs);
}
String msg = testCase.message();
if (msg != null) {
builder.setMsg(msg);
}
String stack = testCase.stackTrace();
if (stack != null) {
builder.setStacktrace(stack);
}
TestCase.Status status = testCase.status();
if (status != null) {
builder.setStatus(TestStatus.valueOf(status.name()));
}
return builder.build();
}

}));
writer.writeTests(resource.batchId(), Iterables.transform(testPlan.testCases(), new TestConverter(testNamesWithCoverage)));

writer.writeCoverageDetails(resource.batchId(), Iterables.transform(testNamesWithCoverage, new FunctionImplementation(testPlan)));
writer.writeCoverageDetails(resource.batchId(), Iterables.transform(testNamesWithCoverage, new TestCoverageConverter(testPlan)));
}
}
}
Expand Up @@ -20,7 +20,6 @@
package org.sonar.batch.scan.report;

import com.google.common.collect.Maps;
import org.apache.commons.collections.CollectionUtils;
import org.sonar.api.issue.Issue;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RulePriority;
Expand Down Expand Up @@ -139,9 +138,11 @@ public boolean isDisplayableLine(Integer lineNumber, boolean all) {

private boolean hasIssues(Integer lineId, boolean all) {
if (all) {
return CollectionUtils.isNotEmpty(issuesPerLine.get(lineId));
List<Issue> issuesAtLine = issuesPerLine.get(lineId);
return issuesAtLine != null && !issuesAtLine.isEmpty();
}
return CollectionUtils.isNotEmpty(newIssuesPerLine.get(lineId));
List<Issue> newIssuesAtLine = newIssuesPerLine.get(lineId);
return newIssuesAtLine != null && !newIssuesAtLine.isEmpty();
}

public List<RuleReport> getRuleReports() {
Expand Down

0 comments on commit 3eb4058

Please sign in to comment.