use of org.sonar.scanner.mediumtest.TaskResult in project sonarqube by SonarSource.
the class IssuesMediumTest method findActiveRuleByInternalKey.
@Test
public void findActiveRuleByInternalKey() throws Exception {
File projectDir = new File(IssuesMediumTest.class.getResource("/mediumtest/xoo/sample").toURI());
File tmpDir = temp.newFolder();
FileUtils.copyDirectory(projectDir, tmpDir);
TaskResult result = tester.newScanTask(new File(tmpDir, "sonar-project.properties")).property("sonar.xoo.internalKey", "OneIssuePerLine.internal").start();
List<Issue> issues = result.issuesFor(result.inputFile("xources/hello/HelloJava.xoo"));
assertThat(issues).hasSize(8 + /* lines */
1);
}
use of org.sonar.scanner.mediumtest.TaskResult in project sonarqube by SonarSource.
the class IssuesMediumTest method testOverrideQProfileSeverity.
@Test
public void testOverrideQProfileSeverity() throws Exception {
File projectDir = new File(IssuesMediumTest.class.getResource("/mediumtest/xoo/sample").toURI());
File tmpDir = temp.newFolder();
FileUtils.copyDirectory(projectDir, tmpDir);
TaskResult result = tester.newScanTask(new File(tmpDir, "sonar-project.properties")).property("sonar.oneIssuePerLine.forceSeverity", "CRITICAL").start();
List<Issue> issues = result.issuesFor(result.inputFile("xources/hello/HelloJava.xoo"));
assertThat(issues.get(0).getSeverity()).isEqualTo(org.sonar.scanner.protocol.Constants.Severity.CRITICAL);
}
use of org.sonar.scanner.mediumtest.TaskResult in project sonarqube by SonarSource.
the class CpdMediumTest method testIntraFileDuplications.
@Test
public void testIntraFileDuplications() throws IOException {
File srcDir = new File(baseDir, "src");
srcDir.mkdir();
String content = "Sample xoo\ncontent\nfoo\nbar\nSample xoo\ncontent\n";
File xooFile = new File(srcDir, "sample.xoo");
FileUtils.write(xooFile, content);
TaskResult result = tester.newTask().properties(builder.put("sonar.sources", "src").put("sonar.cpd.xoo.minimumTokens", "2").put("sonar.cpd.xoo.minimumLines", "2").put("sonar.verbose", "true").build()).start();
InputFile inputFile = result.inputFile("src/sample.xoo");
// One clone group
List<org.sonar.scanner.protocol.output.ScannerReport.Duplication> duplicationGroups = result.duplicationsFor(inputFile);
assertThat(duplicationGroups).hasSize(1);
org.sonar.scanner.protocol.output.ScannerReport.Duplication cloneGroup = duplicationGroups.get(0);
assertThat(cloneGroup.getOriginPosition().getStartLine()).isEqualTo(1);
assertThat(cloneGroup.getOriginPosition().getEndLine()).isEqualTo(2);
assertThat(cloneGroup.getDuplicateList()).hasSize(1);
assertThat(cloneGroup.getDuplicate(0).getRange().getStartLine()).isEqualTo(5);
assertThat(cloneGroup.getDuplicate(0).getRange().getEndLine()).isEqualTo(6);
}
use of org.sonar.scanner.mediumtest.TaskResult in project sonarqube by SonarSource.
the class CpdMediumTest method testCrossModuleDuplications.
@Test
public void testCrossModuleDuplications() throws IOException {
builder.put("sonar.modules", "module1,module2").put("sonar.cpd.xoo.minimumTokens", "10").put("sonar.verbose", "true");
// module 1
builder.put("module1.sonar.projectKey", "module1");
builder.put("module1.sonar.projectName", "Module 1");
builder.put("module1.sonar.sources", ".");
// module2
builder.put("module2.sonar.projectKey", "module2");
builder.put("module2.sonar.projectName", "Module 2");
builder.put("module2.sonar.sources", ".");
File module1Dir = new File(baseDir, "module1");
File module2Dir = new File(baseDir, "module2");
module1Dir.mkdir();
module2Dir.mkdir();
String duplicatedStuff = "Sample xoo\ncontent\n" + "foo\nbar\ntoto\ntiti\n" + "foo\nbar\ntoto\ntiti\n" + "bar\ntoto\ntiti\n" + "foo\nbar\ntoto\ntiti";
// create duplicated file in both modules
File xooFile1 = new File(module1Dir, "sample1.xoo");
FileUtils.write(xooFile1, duplicatedStuff);
File xooFile2 = new File(module2Dir, "sample2.xoo");
FileUtils.write(xooFile2, duplicatedStuff);
TaskResult result = tester.newTask().properties(builder.build()).start();
assertThat(result.inputFiles()).hasSize(2);
InputFile inputFile1 = result.inputFile("sample1.xoo");
InputFile inputFile2 = result.inputFile("sample2.xoo");
// One clone group on each file
List<org.sonar.scanner.protocol.output.ScannerReport.Duplication> duplicationGroupsFile1 = result.duplicationsFor(inputFile1);
assertThat(duplicationGroupsFile1).hasSize(1);
org.sonar.scanner.protocol.output.ScannerReport.Duplication cloneGroupFile1 = duplicationGroupsFile1.get(0);
assertThat(cloneGroupFile1.getOriginPosition().getStartLine()).isEqualTo(1);
assertThat(cloneGroupFile1.getOriginPosition().getEndLine()).isEqualTo(17);
assertThat(cloneGroupFile1.getDuplicateList()).hasSize(1);
assertThat(cloneGroupFile1.getDuplicate(0).getOtherFileRef()).isEqualTo(result.getReportComponent(((DefaultInputFile) inputFile2).key()).getRef());
List<org.sonar.scanner.protocol.output.ScannerReport.Duplication> duplicationGroupsFile2 = result.duplicationsFor(inputFile2);
assertThat(duplicationGroupsFile2).hasSize(1);
org.sonar.scanner.protocol.output.ScannerReport.Duplication cloneGroupFile2 = duplicationGroupsFile2.get(0);
assertThat(cloneGroupFile2.getOriginPosition().getStartLine()).isEqualTo(1);
assertThat(cloneGroupFile2.getOriginPosition().getEndLine()).isEqualTo(17);
assertThat(cloneGroupFile2.getDuplicateList()).hasSize(1);
assertThat(cloneGroupFile2.getDuplicate(0).getOtherFileRef()).isEqualTo(result.getReportComponent(((DefaultInputFile) inputFile1).key()).getRef());
assertThat(result.duplicationBlocksFor(inputFile1)).isEmpty();
}
use of org.sonar.scanner.mediumtest.TaskResult in project sonarqube by SonarSource.
the class DeprecatedApiMediumTest method createIssueOnRootDir.
@Test
public void createIssueOnRootDir() throws IOException {
File baseDir = temp.getRoot();
File xooFileInRootDir = new File(baseDir, "sample.xoo");
FileUtils.write(xooFileInRootDir, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10");
File xooFileInAnotherDir = new File(baseDir, "package/sample.xoo");
FileUtils.write(xooFileInAnotherDir, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10");
TaskResult result = tester.newTask().properties(ImmutableMap.<String, String>builder().put("sonar.task", "scan").put("sonar.projectBaseDir", baseDir.getAbsolutePath()).put("sonar.projectKey", "com.foo.project").put("sonar.projectName", "Foo Project").put("sonar.projectVersion", "1.0-SNAPSHOT").put("sonar.projectDescription", "Description of Foo Project").put("sonar.sources", ".").build()).start();
assertThat(result.issuesFor(result.inputFile("sample.xoo"))).extracting("msg", "textRange.startLine").containsOnly(tuple("Issue created using deprecated API", 0), tuple("Issue created using deprecated API", 1));
assertThat(result.issuesFor(result.inputFile("package/sample.xoo"))).extracting("msg", "textRange.startLine").containsOnly(tuple("Issue created using deprecated API", 0), tuple("Issue created using deprecated API", 1));
assertThat(result.issuesFor(result.inputDir(""))).extracting("msg", "textRange.startLine").containsOnly(tuple("Issue created using deprecated API", 0));
assertThat(result.issuesFor(result.inputDir("package"))).extracting("msg", "textRange.startLine").containsOnly(tuple("Issue created using deprecated API", 0));
}
Aggregations