use of org.sonar.db.component.SnapshotDto in project sonarqube by SonarSource.
the class PurgeDaoTest method selectPurgeableAnalyses_does_not_return_the_baseline.
@Test
public void selectPurgeableAnalyses_does_not_return_the_baseline() {
ComponentDto project1 = db.components().insertPublicProject("master");
SnapshotDto analysis1 = db.components().insertSnapshot(newSnapshot().setComponentUuid(project1.uuid()).setStatus(STATUS_PROCESSED).setLast(false));
dbClient.newCodePeriodDao().insert(dbSession, new NewCodePeriodDto().setProjectUuid(project1.uuid()).setBranchUuid(project1.uuid()).setType(NewCodePeriodType.SPECIFIC_ANALYSIS).setValue(analysis1.getUuid()));
ComponentDto project2 = db.components().insertPrivateProject();
SnapshotDto analysis2 = db.components().insertSnapshot(newSnapshot().setComponentUuid(project2.uuid()).setStatus(STATUS_PROCESSED).setLast(false));
db.components().insertProjectBranch(project2);
assertThat(underTest.selectPurgeableAnalyses(project1.uuid(), dbSession)).isEmpty();
assertThat(underTest.selectPurgeableAnalyses(project2.uuid(), dbSession)).extracting(PurgeableAnalysisDto::getAnalysisUuid).containsOnly(analysis2.getUuid());
}
use of org.sonar.db.component.SnapshotDto in project sonarqube by SonarSource.
the class PurgeDaoTest method delete_row_in_events_and_event_component_changes_when_deleting_project.
@Test
public void delete_row_in_events_and_event_component_changes_when_deleting_project() {
ComponentDto project = ComponentTesting.newPrivateProjectDto();
ComponentDto branch = ComponentTesting.newBranchComponent(project, newBranchDto(project));
ComponentDto anotherBranch = ComponentTesting.newBranchComponent(project, newBranchDto(project));
ComponentDto anotherProject = ComponentTesting.newPrivateProjectDto();
dbClient.componentDao().insert(dbSession, project, branch, anotherBranch, anotherProject);
SnapshotDto projectAnalysis1 = db.components().insertSnapshot(project);
SnapshotDto projectAnalysis2 = db.components().insertSnapshot(project);
EventDto projectEvent1 = db.events().insertEvent(projectAnalysis1);
EventDto projectEvent2 = db.events().insertEvent(projectAnalysis2);
EventDto projectEvent3 = db.events().insertEvent(db.components().insertSnapshot(project));
SnapshotDto branchAnalysis1 = db.components().insertSnapshot(branch);
SnapshotDto branchAnalysis2 = db.components().insertSnapshot(branch);
EventDto branchEvent1 = db.events().insertEvent(branchAnalysis1);
EventDto branchEvent2 = db.events().insertEvent(branchAnalysis2);
SnapshotDto anotherBranchAnalysis = db.components().insertSnapshot(anotherBranch);
EventDto anotherBranchEvent = db.events().insertEvent(anotherBranchAnalysis);
SnapshotDto anotherProjectAnalysis = db.components().insertSnapshot(anotherProject);
EventDto anotherProjectEvent = db.events().insertEvent(anotherProjectAnalysis);
ComponentDto referencedProjectA = db.components().insertPublicProject();
ComponentDto referencedProjectB = db.components().insertPublicProject();
db.events().insertEventComponentChanges(projectEvent1, projectAnalysis1, randomChangeCategory(), referencedProjectA, null);
db.events().insertEventComponentChanges(projectEvent1, projectAnalysis1, randomChangeCategory(), referencedProjectB, null);
BranchDto branchProjectA = newBranchDto(referencedProjectA);
ComponentDto cptBranchProjectA = ComponentTesting.newBranchComponent(referencedProjectA, branchProjectA);
db.events().insertEventComponentChanges(projectEvent2, projectAnalysis2, randomChangeCategory(), cptBranchProjectA, branchProjectA);
// note: projectEvent3 has no component change
db.events().insertEventComponentChanges(branchEvent1, branchAnalysis1, randomChangeCategory(), referencedProjectB, null);
db.events().insertEventComponentChanges(branchEvent2, branchAnalysis2, randomChangeCategory(), cptBranchProjectA, branchProjectA);
db.events().insertEventComponentChanges(anotherBranchEvent, anotherBranchAnalysis, randomChangeCategory(), referencedProjectB, null);
db.events().insertEventComponentChanges(anotherProjectEvent, anotherProjectAnalysis, randomChangeCategory(), referencedProjectB, null);
// deleting referenced project does not delete any data
underTest.deleteProject(dbSession, referencedProjectA.uuid(), referencedProjectA.qualifier(), project.name(), project.getKey());
assertThat(db.countRowsOfTable("event_component_changes")).isEqualTo(7);
assertThat(db.countRowsOfTable("events")).isEqualTo(7);
underTest.deleteProject(dbSession, branch.uuid(), branch.qualifier(), project.name(), project.getKey());
assertThat(uuidsIn("event_component_changes", "event_component_uuid")).containsOnly(project.uuid(), anotherBranch.uuid(), anotherProject.uuid());
assertThat(db.countRowsOfTable("event_component_changes")).isEqualTo(5);
assertThat(uuidsIn("events")).containsOnly(projectEvent1.getUuid(), projectEvent2.getUuid(), projectEvent3.getUuid(), anotherBranchEvent.getUuid(), anotherProjectEvent.getUuid());
underTest.deleteProject(dbSession, project.uuid(), project.qualifier(), project.name(), project.getKey());
assertThat(uuidsIn("event_component_changes", "event_component_uuid")).containsOnly(anotherBranch.uuid(), anotherProject.uuid());
assertThat(db.countRowsOfTable("event_component_changes")).isEqualTo(2);
assertThat(uuidsIn("events")).containsOnly(anotherBranchEvent.getUuid(), anotherProjectEvent.getUuid());
}
use of org.sonar.db.component.SnapshotDto in project sonarqube by SonarSource.
the class PurgeDaoTest method selectPurgeableAnalyses_does_not_return_the_baseline_of_specific_branch.
@Test
public void selectPurgeableAnalyses_does_not_return_the_baseline_of_specific_branch() {
ComponentDto project = db.components().insertPublicProject("master");
SnapshotDto analysisProject = db.components().insertSnapshot(newSnapshot().setComponentUuid(project.uuid()).setStatus(STATUS_PROCESSED).setLast(false));
dbClient.newCodePeriodDao().insert(dbSession, new NewCodePeriodDto().setProjectUuid(project.uuid()).setBranchUuid(project.uuid()).setType(NewCodePeriodType.SPECIFIC_ANALYSIS).setValue(analysisProject.getUuid()));
ComponentDto branch1 = db.components().insertProjectBranch(project);
SnapshotDto analysisBranch1 = db.components().insertSnapshot(newSnapshot().setComponentUuid(branch1.uuid()).setStatus(STATUS_PROCESSED).setLast(false));
ComponentDto branch2 = db.components().insertProjectBranch(project);
SnapshotDto analysisBranch2 = db.components().insertSnapshot(newSnapshot().setComponentUuid(branch2.uuid()).setStatus(STATUS_PROCESSED).setLast(false));
dbClient.newCodePeriodDao().insert(dbSession, new NewCodePeriodDto().setProjectUuid(project.uuid()).setBranchUuid(branch2.uuid()).setType(NewCodePeriodType.SPECIFIC_ANALYSIS).setValue(analysisBranch2.getUuid()));
dbSession.commit();
assertThat(underTest.selectPurgeableAnalyses(project.uuid(), dbSession)).isEmpty();
assertThat(underTest.selectPurgeableAnalyses(branch1.uuid(), dbSession)).extracting(PurgeableAnalysisDto::getAnalysisUuid).containsOnly(analysisBranch1.getUuid());
assertThat(underTest.selectPurgeableAnalyses(branch2.uuid(), dbSession)).isEmpty();
}
use of org.sonar.db.component.SnapshotDto in project sonarqube by SonarSource.
the class PurgeDaoTest method delete_project_and_associated_data.
@Test
public void delete_project_and_associated_data() {
RuleDefinitionDto rule = db.rules().insert();
ComponentDto project = db.components().insertPrivateProject();
ComponentDto module = db.components().insertComponent(newModuleDto(project));
ComponentDto directory = db.components().insertComponent(newDirectory(module, "a/b"));
ComponentDto file = db.components().insertComponent(newFileDto(directory));
SnapshotDto analysis = db.components().insertSnapshot(project);
IssueDto issue1 = db.issues().insert(rule, project, file);
IssueChangeDto issueChange1 = db.issues().insertChange(issue1);
IssueDto issue2 = db.issues().insert(rule, project, file);
FileSourceDto fileSource = db.fileSources().insertFileSource(file);
db.issues().insertNewCodeReferenceIssue(newCodeReferenceIssue(issue1));
ComponentDto otherProject = db.components().insertPrivateProject();
ComponentDto otherModule = db.components().insertComponent(newModuleDto(otherProject));
ComponentDto otherDirectory = db.components().insertComponent(newDirectory(otherModule, "a/b"));
ComponentDto otherFile = db.components().insertComponent(newFileDto(otherDirectory));
SnapshotDto otherAnalysis = db.components().insertSnapshot(otherProject);
IssueDto otherIssue1 = db.issues().insert(rule, otherProject, otherFile);
IssueChangeDto otherIssueChange1 = db.issues().insertChange(otherIssue1);
IssueDto otherIssue2 = db.issues().insert(rule, otherProject, otherFile);
FileSourceDto otherFileSource = db.fileSources().insertFileSource(otherFile);
db.issues().insertNewCodeReferenceIssue(newCodeReferenceIssue(otherIssue1));
underTest.deleteProject(dbSession, project.uuid(), project.qualifier(), project.name(), project.getKey());
dbSession.commit();
assertThat(uuidsIn("components")).containsOnly(otherProject.uuid(), otherModule.uuid(), otherDirectory.uuid(), otherFile.uuid());
assertThat(uuidsIn("projects")).containsOnly(otherProject.uuid());
assertThat(uuidsIn("snapshots")).containsOnly(otherAnalysis.getUuid());
assertThat(uuidsIn("issues", "kee")).containsOnly(otherIssue1.getKey(), otherIssue2.getKey());
assertThat(uuidsIn("issue_changes", "kee")).containsOnly(otherIssueChange1.getKey());
assertThat(uuidsIn("new_code_reference_issues", "issue_key")).containsOnly(otherIssue1.getKey());
assertThat(uuidsIn("file_sources", "file_uuid")).containsOnly(otherFileSource.getFileUuid());
}
use of org.sonar.db.component.SnapshotDto in project sonarqube by SonarSource.
the class PurgeDaoTest method delete_application.
@Test
public void delete_application() {
MetricDto metric = db.measures().insertMetric();
ComponentDto project = db.components().insertPrivateProject();
BranchDto projectBranch = db.getDbClient().branchDao().selectByUuid(db.getSession(), project.uuid()).get();
RuleDefinitionDto rule = db.rules().insert();
ComponentDto app = db.components().insertPrivateApplication();
ComponentDto appBranch = db.components().insertProjectBranch(app);
ComponentDto otherApp = db.components().insertPrivateApplication();
ComponentDto otherAppBranch = db.components().insertProjectBranch(otherApp);
SnapshotDto appAnalysis = db.components().insertSnapshot(app);
SnapshotDto appBranchAnalysis = db.components().insertSnapshot(appBranch);
SnapshotDto otherAppAnalysis = db.components().insertSnapshot(otherApp);
SnapshotDto otherAppBranchAnalysis = db.components().insertSnapshot(otherAppBranch);
MeasureDto appMeasure = db.measures().insertMeasure(app, appAnalysis, metric);
MeasureDto appBranchMeasure = db.measures().insertMeasure(appBranch, appBranchAnalysis, metric);
MeasureDto otherAppMeasure = db.measures().insertMeasure(otherApp, otherAppAnalysis, metric);
MeasureDto otherAppBranchMeasure = db.measures().insertMeasure(otherAppBranch, otherAppBranchAnalysis, metric);
db.components().addApplicationProject(app, project);
db.components().addApplicationProject(otherApp, project);
db.components().addProjectBranchToApplicationBranch(dbClient.branchDao().selectByUuid(dbSession, appBranch.uuid()).get(), projectBranch);
db.components().addProjectBranchToApplicationBranch(dbClient.branchDao().selectByUuid(dbSession, otherAppBranch.uuid()).get(), projectBranch);
underTest.deleteProject(dbSession, app.uuid(), app.qualifier(), project.name(), project.getKey());
dbSession.commit();
assertThat(uuidsIn("components")).containsOnly(project.uuid(), otherApp.uuid(), otherAppBranch.uuid());
assertThat(uuidsIn("projects")).containsOnly(project.uuid(), otherApp.uuid());
assertThat(uuidsIn("snapshots")).containsOnly(otherAppAnalysis.getUuid(), otherAppBranchAnalysis.getUuid());
assertThat(uuidsIn("project_branches")).containsOnly(project.uuid(), otherApp.uuid(), otherAppBranch.uuid());
assertThat(uuidsIn("project_measures")).containsOnly(otherAppMeasure.getUuid(), otherAppBranchMeasure.getUuid());
assertThat(uuidsIn("app_projects", "application_uuid")).containsOnly(otherApp.uuid());
assertThat(uuidsIn("app_branch_project_branch", "application_branch_uuid")).containsOnly(otherAppBranch.uuid());
}
Aggregations