use of org.sonar.db.component.BranchDto in project sonarqube by SonarSource.
the class BranchPersisterImpl method toBranchDto.
protected BranchDto toBranchDto(DbSession dbSession, ComponentDto componentDto, Branch branch, boolean excludeFromPurge) {
BranchDto dto = new BranchDto();
dto.setUuid(componentDto.uuid());
// MainBranchProjectUuid will be null if it's a main branch
String projectUuid = firstNonNull(componentDto.getMainBranchProjectUuid(), componentDto.projectUuid());
dto.setProjectUuid(projectUuid);
dto.setBranchType(branch.getType());
dto.setExcludeFromPurge(excludeFromPurge);
// merge branch is only present if it's not a main branch and not an application
if (!branch.isMain() && !Qualifiers.APP.equals(componentDto.qualifier())) {
dto.setMergeBranchUuid(branch.getReferenceBranchUuid());
}
if (branch.getType() == BranchType.PULL_REQUEST) {
String pullRequestKey = analysisMetadataHolder.getPullRequestKey();
dto.setKey(pullRequestKey);
DbProjectBranches.PullRequestData pullRequestData = getBuilder(dbSession, projectUuid, pullRequestKey).setBranch(branch.getName()).setTitle(branch.getName()).setTarget(branch.getTargetBranchName()).build();
dto.setPullRequestData(pullRequestData);
} else {
dto.setKey(branch.getName());
}
return dto;
}
use of org.sonar.db.component.BranchDto in project sonarqube by SonarSource.
the class BranchPersisterImplTest method non_main_branch_is_excluded_from_branch_purge_if_matches_sonar_dbcleaner_keepFromPurge_property.
@Test
public void non_main_branch_is_excluded_from_branch_purge_if_matches_sonar_dbcleaner_keepFromPurge_property() {
settings.setProperty(BRANCHES_TO_KEEP_WHEN_INACTIVE, "BRANCH.*");
analysisMetadataHolder.setProject(PROJECT);
analysisMetadataHolder.setBranch(createBranch(BRANCH, false, "BRANCH_KEY"));
treeRootHolder.setRoot(BRANCH1);
ComponentDto mainComponent = dbTester.components().insertPublicProject(p -> p.setDbKey(MAIN.getDbKey()).setUuid(MAIN.getUuid()));
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(BRANCH));
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), component);
dbTester.commit();
underTest.persist(dbTester.getSession());
Optional<BranchDto> branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), BRANCH1.getUuid());
assertThat(branchDto).isPresent();
assertThat(branchDto.get().isExcludeFromPurge()).isTrue();
}
use of org.sonar.db.component.BranchDto in project sonarqube by SonarSource.
the class BranchPersisterImplTest method persist_creates_row_in_PROJECTS_BRANCHES_for_branch.
@Test
@UseDataProvider("nullOrNotNullString")
public void persist_creates_row_in_PROJECTS_BRANCHES_for_branch(@Nullable String mergeBranchUuid) {
String branchName = "branch";
// add project and branch in table PROJECTS
ComponentDto mainComponent = ComponentTesting.newPrivateProjectDto(MAIN.getUuid()).setDbKey(MAIN.getKey());
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(BRANCH));
dbTester.components().insertComponents(mainComponent, component);
// set project in metadata
treeRootHolder.setRoot(BRANCH1);
analysisMetadataHolder.setBranch(createBranch(BRANCH, false, branchName, mergeBranchUuid));
analysisMetadataHolder.setProject(Project.from(mainComponent));
underTest.persist(dbTester.getSession());
dbTester.getSession().commit();
assertThat(dbTester.countRowsOfTable("components")).isEqualTo(2);
Optional<BranchDto> branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), BRANCH1.getUuid());
assertThat(branchDto).isPresent();
assertThat(branchDto.get().getBranchType()).isEqualTo(BRANCH);
assertThat(branchDto.get().getKey()).isEqualTo(branchName);
assertThat(branchDto.get().getMergeBranchUuid()).isEqualTo(mergeBranchUuid);
assertThat(branchDto.get().getProjectUuid()).isEqualTo(MAIN.getUuid());
assertThat(branchDto.get().getPullRequestData()).isNull();
}
use of org.sonar.db.component.BranchDto in project sonarqube by SonarSource.
the class BranchPersisterImplTest method branch_is_excluded_from_purge_when_it_matches_setting.
@Test
public void branch_is_excluded_from_purge_when_it_matches_setting() {
analysisMetadataHolder.setProject(PROJECT);
analysisMetadataHolder.setBranch(createBranch(BRANCH, false, "BRANCH_KEY"));
treeRootHolder.setRoot(BRANCH1);
ComponentDto mainComponent = dbTester.components().insertPublicProject(p -> p.setDbKey(MAIN.getDbKey()).setUuid(MAIN.getUuid()));
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(BRANCH));
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), component);
settings.setProperty(BRANCHES_TO_KEEP_WHEN_INACTIVE, "BRANCH.*");
dbTester.commit();
underTest.persist(dbTester.getSession());
Optional<BranchDto> branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), BRANCH1.getUuid());
assertThat(branchDto).isPresent();
assertThat(branchDto.get().isExcludeFromPurge()).isTrue();
}
use of org.sonar.db.component.BranchDto in project sonarqube by SonarSource.
the class BranchPersisterImplTest method non_main_branch_is_included_in_branch_purge_if_branch_name_does_not_match_sonar_dbcleaner_keepFromPurge_property.
@Test
public void non_main_branch_is_included_in_branch_purge_if_branch_name_does_not_match_sonar_dbcleaner_keepFromPurge_property() {
settings.setProperty(BRANCHES_TO_KEEP_WHEN_INACTIVE, "foobar-.*");
analysisMetadataHolder.setProject(PROJECT);
analysisMetadataHolder.setBranch(createBranch(BRANCH, false, "BRANCH_KEY"));
treeRootHolder.setRoot(BRANCH1);
ComponentDto mainComponent = dbTester.components().insertPublicProject(p -> p.setDbKey(MAIN.getDbKey()).setUuid(MAIN.getUuid()));
ComponentDto component = ComponentTesting.newBranchComponent(mainComponent, new BranchDto().setUuid(BRANCH1.getUuid()).setKey(BRANCH1.getKey()).setBranchType(BRANCH));
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), component);
dbTester.commit();
underTest.persist(dbTester.getSession());
Optional<BranchDto> branchDto = dbTester.getDbClient().branchDao().selectByUuid(dbTester.getSession(), BRANCH1.getUuid());
assertThat(branchDto).isPresent();
assertThat(branchDto.get().isExcludeFromPurge()).isFalse();
}
Aggregations