.setMessage(null) .setLine(null) .setChecksum(null)
.setLine(6) .setSeverity("BLOCKER") .setMessage("message") .setManualSeverity(true) .setAssigneeUuid("perceval")
.setManualSeverity(true) .setResolution("FIXED") .setMessage("the message") .setLine(10) .setChecksum("ABC")
@Test public void use_db_path_if_module_missing_in_report() { ComponentDto module = dbTester.components().insertComponent(newModuleDto(rootProjectDto).setPath("moduleAInDb")); when(reportModulesPath.get()).thenReturn(Collections.emptyMap()); ComponentDto folder = dbTester.components().insertComponent(newDirectory(module, "src")); IssueDto openIssueOnProject = dbTester.issues().insert(rule, rootProjectDto, rootProjectDto, i -> i.setStatus("OPEN").setResolution(null)); IssueDto openIssueOnModule = dbTester.issues().insert(rule, rootProjectDto, module, i -> i.setStatus("OPEN").setMessage("Issue on module").setResolution(null)); IssueDto openIssueOnDir = dbTester.issues().insert(rule, rootProjectDto, folder, i -> i.setStatus("OPEN").setMessage("Issue on dir").setResolution(null)); assertThat(underTest.loadIssues()).extracting(DefaultIssue::key, DefaultIssue::getMessage) .containsExactlyInAnyOrder( tuple(openIssueOnProject.getKey(), openIssueOnProject.getMessage()), tuple(openIssueOnModule.getKey(), "[moduleAInDb] Issue on module"), tuple(openIssueOnDir.getKey(), "[moduleAInDb/src] Issue on dir")); }
@Test public void empty_path_if_module_missing_in_report_and_db_and_for_slash_folder () { ComponentDto module = dbTester.components().insertComponent(newModuleDto(rootProjectDto).setPath(null)); when(reportModulesPath.get()).thenReturn(Collections.emptyMap()); ComponentDto folder = dbTester.components().insertComponent(newDirectory(module, "/")); IssueDto openIssueOnProject = dbTester.issues().insert(rule, rootProjectDto, rootProjectDto, i -> i.setStatus("OPEN").setResolution(null)); IssueDto openIssueOnModule = dbTester.issues().insert(rule, rootProjectDto, module, i -> i.setStatus("OPEN").setMessage("Issue on module").setResolution(null)); IssueDto openIssueOnDir = dbTester.issues().insert(rule, rootProjectDto, folder, i -> i.setStatus("OPEN").setMessage("Issue on dir").setResolution(null)); assertThat(underTest.loadIssues()).extracting(DefaultIssue::key, DefaultIssue::getMessage) .containsExactlyInAnyOrder( tuple(openIssueOnProject.getKey(), openIssueOnProject.getMessage()), tuple(openIssueOnModule.getKey(), "Issue on module"), tuple(openIssueOnDir.getKey(), "Issue on dir")); } }
@Test public void migrate_and_return_folder_issues_on_root_project() { when(reportModulesPath.get()).thenReturn(Collections.emptyMap()); ComponentDto folder = dbTester.components().insertComponent(newDirectory(rootProjectDto, "src")); ComponentDto file = dbTester.components().insertComponent(newFileDto(rootProjectDto)); IssueDto openIssueOnProject = dbTester.issues().insert(rule, rootProjectDto, rootProjectDto, i -> i.setStatus("OPEN").setResolution(null)); IssueDto openIssueOnDir = dbTester.issues().insert(rule, rootProjectDto, folder, i -> i.setStatus("OPEN").setMessage("Issue on dir").setResolution(null)); IssueDto openIssue1OnFile = dbTester.issues().insert(rule, rootProjectDto, file, i -> i.setStatus("OPEN").setResolution(null)); assertThat(underTest.loadIssues()).extracting(DefaultIssue::key, DefaultIssue::getMessage) .containsExactlyInAnyOrder( tuple(openIssueOnProject.getKey(), openIssueOnProject.getMessage()), tuple(openIssueOnDir.getKey(), "[src] Issue on dir")); }
@Test public void migrate_and_return_module_and_folder_issues_on_module() { ComponentDto module = dbTester.components().insertComponent(newModuleDto(rootProjectDto).setPath("moduleAInDb")); when(reportModulesPath.get()).thenReturn(ImmutableMap.of(module.getDbKey(), "moduleAInReport")); ComponentDto folder = dbTester.components().insertComponent(newDirectory(module, "src")); ComponentDto file = dbTester.components().insertComponent(newFileDto(module)); IssueDto openIssueOnProject = dbTester.issues().insert(rule, rootProjectDto, rootProjectDto, i -> i.setStatus("OPEN").setResolution(null)); IssueDto openIssueOnModule = dbTester.issues().insert(rule, rootProjectDto, module, i -> i.setStatus("OPEN").setMessage("Issue on module").setResolution(null)); IssueDto openIssueOnDir = dbTester.issues().insert(rule, rootProjectDto, folder, i -> i.setStatus("OPEN").setMessage("Issue on dir").setResolution(null)); IssueDto openIssue1OnFile = dbTester.issues().insert(rule, rootProjectDto, file, i -> i.setStatus("OPEN").setResolution(null)); assertThat(underTest.loadIssues()).extracting(DefaultIssue::key, DefaultIssue::getMessage) .containsExactlyInAnyOrder( tuple(openIssueOnProject.getKey(), openIssueOnProject.getMessage()), tuple(openIssueOnModule.getKey(), "[moduleAInReport] Issue on module"), tuple(openIssueOnDir.getKey(), "[moduleAInReport/src] Issue on dir")); }
private void prepareTables() { db.rules().insertRule(RULE.setIsExternal(true)); OrganizationDto organizationDto = db.organizations().insert(); ComponentDto projectDto = db.components().insertPrivateProject(organizationDto, (t) -> t.setUuid(PROJECT_UUID).setDbKey(PROJECT_KEY)); db.components().insertComponent(newFileDto(projectDto).setUuid(FILE_UUID).setDbKey(FILE_KEY)); underTest.insert(db.getSession(), newIssueDto(ISSUE_KEY1) .setMessage("the message") .setRuleId(RULE.getId()) .setComponentUuid(FILE_UUID) .setProjectUuid(PROJECT_UUID)); underTest.insert(db.getSession(), newIssueDto(ISSUE_KEY2) .setRuleId(RULE.getId()) .setComponentUuid(FILE_UUID) .setProjectUuid(PROJECT_UUID)); db.getSession().commit(); }
.setLine(42) .setChecksum("a227e508d6646b55a086ee11d63b21e9") .setMessage("the message") .setStatus(STATUS_RESOLVED) .setResolution(RESOLUTION_FIXED)
.setLine(issue.line()) .setLocations((DbIssues.Locations) issue.getLocations()) .setMessage(issue.message()) .setGap(issue.gap()) .setEffort(issue.effortInMinutes())
.setLine(issue.line()) .setLocations((DbIssues.Locations) issue.getLocations()) .setMessage(issue.message()) .setGap(issue.gap()) .setEffort(issue.effortInMinutes())
.setLine(issue.line()) .setLocations((DbIssues.Locations) issue.getLocations()) .setMessage(issue.message()) .setGap(issue.gap()) .setEffort(issue.effortInMinutes())
.setLine(issue.line()) .setLocations((DbIssues.Locations) issue.getLocations()) .setMessage(issue.message()) .setGap(issue.gap()) .setEffort(issue.effortInMinutes())