aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorJacek <jacek.poreda@sonarsource.com>2020-12-15 09:05:56 +0100
committersonartech <sonartech@sonarsource.com>2020-12-22 20:09:37 +0000
commitd32d574c7ef425dd95ac15414347f9f546fc8263 (patch)
treeba8cb380ce08b972ecde8539c67c99be3024d9b7 /server/sonar-db-dao
parent019d8c66ada8a01c96733bed0c771a8b88cfe3cd (diff)
downloadsonarqube-d32d574c7ef425dd95ac15414347f9f546fc8263.tar.gz
sonarqube-d32d574c7ef425dd95ac15414347f9f546fc8263.zip
SONAR-13999 drop organization from QualityGate WS
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDao.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java10
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java52
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml1
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml8
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java94
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/QualityGateDaoTest.java160
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualitygate/QualityGateDbTester.java17
8 files changed, 146 insertions, 201 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDao.java
index 0fdbd59b054..9ed7907c22c 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDao.java
@@ -30,7 +30,6 @@ import org.sonar.db.Pagination;
import org.sonar.db.alm.ALM;
import org.sonar.db.component.BranchType;
import org.sonar.db.permission.template.DefaultTemplates;
-import org.sonar.db.qualitygate.QGateWithOrgDto;
import org.sonar.db.user.GroupDto;
import static java.util.Objects.requireNonNull;
@@ -120,10 +119,6 @@ public class OrganizationDao implements Dao {
getMapper(dbSession).updateDefaultGroupUuid(uuid, requireNonNull(defaultGroupUuid, "Default group uuid cannot be null"), system2.now());
}
- public void setDefaultQualityGate(DbSession dbSession, OrganizationDto organization, QGateWithOrgDto qualityGate) {
- getMapper(dbSession).updateDefaultQualityGate(organization.getUuid(), qualityGate.getUuid(), system2.now());
- }
-
public int update(DbSession dbSession, OrganizationDto organization) {
checkDto(organization);
organization.setUpdatedAt(system2.now());
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java
index ed77c2e0707..0ba046ff2fa 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java
@@ -40,7 +40,6 @@ public class ProjectQgateAssociationQuery {
public static final Set<String> AVAILABLE_MEMBERSHIP = ImmutableSet.of(ANY, IN, OUT);
private final String gateUuid;
- private final String organizationUuid;
private final String membership;
private final String projectSearch;
@@ -56,7 +55,6 @@ public class ProjectQgateAssociationQuery {
private ProjectQgateAssociationQuery(Builder builder) {
this.gateUuid = builder.qualityGate.getUuid();
- this.organizationUuid = builder.qualityGate.getOrganizationUuid();
this.membership = builder.membership;
this.projectSearch = builder.projectSearch;
if (this.projectSearch == null) {
@@ -73,10 +71,6 @@ public class ProjectQgateAssociationQuery {
return gateUuid;
}
- public String organizationUuid() {
- return organizationUuid;
- }
-
@CheckForNull
public String membership() {
return membership;
@@ -103,7 +97,7 @@ public class ProjectQgateAssociationQuery {
}
public static class Builder {
- private QGateWithOrgDto qualityGate;
+ private QualityGateDto qualityGate;
private String membership;
private String projectSearch;
@@ -113,7 +107,7 @@ public class ProjectQgateAssociationQuery {
private Builder() {
}
- public Builder qualityGate(QGateWithOrgDto qualityGate) {
+ public Builder qualityGate(QualityGateDto qualityGate) {
this.qualityGate = qualityGate;
return this;
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java
index 4daf6fd17fc..b0d65fe64b7 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/QualityGateDao.java
@@ -27,13 +27,17 @@ import org.sonar.db.Dao;
import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
+import org.sonar.db.property.InternalPropertiesDao;
public class QualityGateDao implements Dao {
+ private static final String DEFAULT_ORGANIZATION_PROPERTY_KEY = "organization.default";
private final UuidFactory uuidFactory;
+ private final InternalPropertiesDao internalPropertiesDao;
- public QualityGateDao(UuidFactory uuidFactory) {
+ public QualityGateDao(UuidFactory uuidFactory, InternalPropertiesDao internalPropertiesDao) {
this.uuidFactory = uuidFactory;
+ this.internalPropertiesDao = internalPropertiesDao;
}
public QualityGateDto insert(DbSession session, QualityGateDto newQualityGate) {
@@ -43,12 +47,30 @@ public class QualityGateDao implements Dao {
return newQualityGate;
}
+ /**
+ * @deprecated drop when org are dropped
+ */
+ @Deprecated
public void associate(DbSession dbSession, String uuid, OrganizationDto organization, QualityGateDto qualityGate) {
mapper(dbSession).insertOrgQualityGate(uuid, organization.getUuid(), qualityGate.getUuid());
}
- public Collection<QualityGateDto> selectAll(DbSession session, OrganizationDto organization) {
- return mapper(session).selectAll(organization.getUuid());
+ public void associate(DbSession dbSession, String uuid, QualityGateDto qualityGate) {
+ String defaultOrganizationUuid = getDefaultOrganizationUuid(dbSession);
+ mapper(dbSession).insertOrgQualityGate(uuid, defaultOrganizationUuid, qualityGate.getUuid());
+ }
+
+ public Collection<QualityGateDto> selectAll(DbSession session) {
+ String defaultOrganizationUuid = getDefaultOrganizationUuid(session);
+ return selectAll(session, defaultOrganizationUuid);
+ }
+
+ /**
+ * @deprecated drop when org are dropped
+ */
+ @Deprecated
+ public Collection<QualityGateDto> selectAll(DbSession session, String organizationUuid) {
+ return mapper(session).selectAll(organizationUuid);
}
@CheckForNull
@@ -62,17 +84,24 @@ public class QualityGateDao implements Dao {
}
@CheckForNull
- public QGateWithOrgDto selectByOrganizationAndUuid(DbSession dbSession, OrganizationDto organization, String qualityGateUuid) {
- return mapper(dbSession).selectByUuidAndOrganization(qualityGateUuid, organization.getUuid());
+ public QGateWithOrgDto selectByDefaultOrganizationAndUuid(DbSession dbSession, String qualityGateUuid) {
+ String defaultOrganizationUuid = getDefaultOrganizationUuid(dbSession);
+ return mapper(dbSession).selectByUuidAndOrganization(qualityGateUuid, defaultOrganizationUuid);
}
+ /**
+ * @deprecated drop when org are dropped
+ */
@CheckForNull
- public QGateWithOrgDto selectByOrganizationAndName(DbSession session, OrganizationDto organization, String name) {
- return mapper(session).selectByNameAndOrganization(name, organization.getUuid());
+ @Deprecated
+ public QGateWithOrgDto selectByOrganizationAndUuid(DbSession dbSession, OrganizationDto organization, String qualityGateUuid) {
+ return mapper(dbSession).selectByUuidAndOrganization(qualityGateUuid, organization.getUuid());
}
- public QGateWithOrgDto selectDefault(DbSession dbSession, OrganizationDto organization) {
- return mapper(dbSession).selectDefault(organization.getUuid());
+ @CheckForNull
+ public QGateWithOrgDto selectByDefaultOrganizationAndName(DbSession session, String name) {
+ String defaultOrganizationUuid = getDefaultOrganizationUuid(session);
+ return mapper(session).selectByNameAndOrganization(name, defaultOrganizationUuid);
}
public void delete(QualityGateDto qGate, DbSession session) {
@@ -108,4 +137,9 @@ public class QualityGateDao implements Dao {
public QualityGateDto selectByProjectUuid(DbSession dbSession, String projectUuid) {
return mapper(dbSession).selectByProjectUuid(projectUuid);
}
+
+ private String getDefaultOrganizationUuid(DbSession dbSession) {
+ return internalPropertiesDao.selectByKey(dbSession, DEFAULT_ORGANIZATION_PROPERTY_KEY)
+ .orElseThrow(() -> new IllegalStateException("Default organization does not exist."));
+ }
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml
index 6b31322cb80..4419b062141 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/ProjectQgateAssociationMapper.xml
@@ -13,7 +13,6 @@
and proj.enabled = ${_true}
and proj.main_branch_project_uuid is null
and proj.copy_component_uuid is null
- and proj.organization_uuid=#{query.organizationUuid, jdbcType=VARCHAR}
<choose>
<when test="query.membership() == 'selected'">
and qg.uuid IS NOT NULL
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml
index 00c61babc89..3668da9ca75 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualitygate/QualityGateMapper.xml
@@ -88,14 +88,6 @@
is_built_in = ${_true}
</select>
- <select id="selectDefault" resultType="org.sonar.db.qualitygate.QGateWithOrgDto">
- SELECT
- <include refid="qateWithOrgColumns"/>
- FROM quality_gates qg
- INNER JOIN org_quality_gates oqg ON oqg.quality_gate_uuid = qg.uuid
- INNER JOIN organizations o ON o.default_quality_gate_uuid = qg.uuid AND o.uuid=#{organizationUuid, jdbcType=VARCHAR}
- </select>
-
<update id="delete" parameterType="String">
delete from quality_gates where uuid=#{uuid}
</update>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java
index f2fe1826be1..b4626b6ea64 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/ProjectQgateAssociationDaoTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import static org.assertj.core.api.Assertions.assertThat;
@@ -42,12 +41,11 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void select_all_projects_by_query() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization);
- ComponentDto project2 = db.components().insertPrivateProject(organization);
- ComponentDto project3 = db.components().insertPrivateProject(organization);
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject();
+ ComponentDto project2 = db.components().insertPrivateProject();
+ ComponentDto project3 = db.components().insertPrivateProject();
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project1), qualityGate1);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project2), qualityGate1);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project3), qualityGate2);
@@ -66,11 +64,10 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void select_all_projects_by_query_should_have_deterministic_order() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization, d -> d.setName("p1").setDbKey("key1"));
- ComponentDto project2 = db.components().insertPrivateProject(organization, d -> d.setName("p1").setDbKey("key2"));
- ComponentDto project3 = db.components().insertPrivateProject(organization, d -> d.setName("p2").setDbKey("key3"));
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject(d -> d.setName("p1").setDbKey("key1"));
+ ComponentDto project2 = db.components().insertPrivateProject(d -> d.setName("p1").setDbKey("key2"));
+ ComponentDto project3 = db.components().insertPrivateProject(d -> d.setName("p2").setDbKey("key3"));
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project1), qualityGate1);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project2), qualityGate1);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project3), qualityGate1);
@@ -86,11 +83,10 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void select_projects_by_query() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization);
- ComponentDto project2 = db.components().insertPrivateProject(organization);
- ComponentDto project3 = db.components().insertPrivateProject(organization);
+ QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject();
+ ComponentDto project2 = db.components().insertPrivateProject();
+ ComponentDto project3 = db.components().insertPrivateProject();
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project1), qualityGate);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project2), qualityGate);
@@ -113,11 +109,10 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void search_by_project_name() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization, p -> p.setName("Project One"));
- ComponentDto project2 = db.components().insertPrivateProject(organization, p -> p.setName("Project Two"));
- ComponentDto project3 = db.components().insertPrivateProject(organization, p -> p.setName("Project Three"));
+ QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject(p -> p.setName("Project One"));
+ ComponentDto project2 = db.components().insertPrivateProject(p -> p.setName("Project Two"));
+ ComponentDto project3 = db.components().insertPrivateProject(p -> p.setName("Project Three"));
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project1), qualityGate);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project2), qualityGate);
@@ -138,11 +133,10 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void sorted_by_project_name() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization, p -> p.setName("Project One"));
- ComponentDto project2 = db.components().insertPrivateProject(organization, p -> p.setName("Project Two"));
- ComponentDto project3 = db.components().insertPrivateProject(organization, p -> p.setName("Project Three"));
+ QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject(p -> p.setName("Project One"));
+ ComponentDto project2 = db.components().insertPrivateProject(p -> p.setName("Project Two"));
+ ComponentDto project3 = db.components().insertPrivateProject(p -> p.setName("Project Three"));
assertThat(underTest.selectProjects(dbSession, ProjectQgateAssociationQuery.builder()
.qualityGate(qualityGate)
@@ -152,26 +146,6 @@ public class ProjectQgateAssociationDaoTest {
}
@Test
- public void return_only_projects_from_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto otherQualityGate = db.qualityGates().insertQualityGate(otherOrganization);
- ComponentDto project = db.components().insertPrivateProject(organization);
- ComponentDto otherProject = db.components().insertPrivateProject(otherOrganization);
- db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project), qualityGate);
- db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(otherProject), otherQualityGate);
-
- List<ProjectQgateAssociationDto> result = underTest.selectProjects(dbSession, ProjectQgateAssociationQuery.builder()
- .qualityGate(qualityGate)
- .build());
-
- assertThat(result)
- .extracting(ProjectQgateAssociationDto::getUuid)
- .containsExactlyInAnyOrder(project.uuid());
- }
-
- @Test
public void select_qgate_uuid_is_absent() {
ComponentDto project = db.components().insertPrivateProject();
@@ -182,11 +156,10 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void select_qgate_uuid() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization);
- ComponentDto project1 = db.components().insertPrivateProject(organization);
- ComponentDto project2 = db.components().insertPrivateProject(organization);
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
+ ComponentDto project1 = db.components().insertPrivateProject();
+ ComponentDto project2 = db.components().insertPrivateProject();
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project1), qualityGate1);
db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project2), qualityGate2);
@@ -197,9 +170,8 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void delete_by_project_uuid() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
+ QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
+ ProjectDto project = db.components().insertPrivateProjectDto();
db.qualityGates().associateProjectToQualityGate(project, qualityGate);
@@ -212,9 +184,8 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void delete_by_qgate_uuid() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
+ QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
+ ProjectDto project = db.components().insertPrivateProjectDto();
db.qualityGates().associateProjectToQualityGate(project, qualityGate);
@@ -227,10 +198,9 @@ public class ProjectQgateAssociationDaoTest {
@Test
public void update_project_qgate_association() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto firstQualityGate = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto secondQualityGate = db.qualityGates().insertQualityGate(organization);
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
+ QualityGateDto firstQualityGate = db.qualityGates().insertQualityGate();
+ QualityGateDto secondQualityGate = db.qualityGates().insertQualityGate();
+ ProjectDto project = db.components().insertPrivateProjectDto();
db.qualityGates().associateProjectToQualityGate(project, firstQualityGate);
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/QualityGateDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/QualityGateDaoTest.java
index c79b7709359..814adc717e2 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/QualityGateDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualitygate/QualityGateDaoTest.java
@@ -27,7 +27,6 @@ import org.sonar.api.utils.System2;
import org.sonar.core.util.Uuids;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import static java.lang.String.format;
@@ -62,18 +61,19 @@ public class QualityGateDaoTest {
assertThat(reloaded.getUpdatedAt()).isNotNull();
}
- @Test
- public void associate() {
- QualityGateDto qgate = db.qualityGates().insertQualityGate(db.getDefaultOrganization());
- OrganizationDto org = db.organizations().insert();
-
- underTest.associate(dbSession, Uuids.createFast(), org, qgate);
-
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid())).isNotNull();
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid()))
- .extracting(QGateWithOrgDto::getUuid, QGateWithOrgDto::getUuid, QGateWithOrgDto::getOrganizationUuid, QGateWithOrgDto::getName)
- .containsExactly(qgate.getUuid(), qgate.getUuid(), org.getUuid(), qgate.getName());
- }
+ // TODO::
+ // @Test
+ // public void associate() {
+ // QualityGateDto qgate = db.qualityGates().(db.getDefaultOrganization());
+ // OrganizationDto org = db.organizations().insert();
+ //
+ // underTest.associate(dbSession, Uuids.createFast(), org, qgate);
+ //
+ // assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid())).isNotNull();
+ // assertThat(underTest.selectByOrganizationAndUuid(dbSession, org, qgate.getUuid()))
+ // .extracting(QualityGateDto::getUuid, QualityGateDto::getUuid, QualityGateDto::getOrganizationUuid, QualityGateDto::getName)
+ // .containsExactly(qgate.getUuid(), qgate.getUuid(), org.getUuid(), qgate.getName());
+ // }
@Test
public void insert_built_in() {
@@ -86,15 +86,13 @@ public class QualityGateDaoTest {
@Test
public void select_all() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = qualityGateDbTester.insertQualityGate(organization1);
- QGateWithOrgDto qualityGate2 = qualityGateDbTester.insertQualityGate(organization1);
- QGateWithOrgDto qualityGateOnOtherOrg = qualityGateDbTester.insertQualityGate(organization2);
+ QualityGateDto qualityGate1 = qualityGateDbTester.insertQualityGate();
+ QualityGateDto qualityGate2 = qualityGateDbTester.insertQualityGate();
+ QualityGateDto qualityGateOnOtherOrg = qualityGateDbTester.insertQualityGate();
- assertThat(underTest.selectAll(dbSession, organization1))
+ assertThat(underTest.selectAll(dbSession))
.extracting(QualityGateDto::getUuid)
- .containsExactlyInAnyOrder(qualityGate1.getUuid(), qualityGate2.getUuid());
+ .containsExactlyInAnyOrder(qualityGate1.getUuid(), qualityGate2.getUuid(), qualityGateOnOtherOrg.getUuid());
}
@Test
@@ -119,67 +117,35 @@ public class QualityGateDaoTest {
}
@Test
- public void select_by_organization_and_uuid() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto otherQualityGate = db.qualityGates().insertQualityGate(otherOrganization);
-
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, qualityGate.getUuid()).getUuid()).isEqualTo(qualityGate.getUuid());
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, otherOrganization, qualityGate.getUuid())).isNull();
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, otherQualityGate.getUuid())).isNull();
- }
-
- @Test
public void select_by_organization_and_name() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization);
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto qualityGate3 = db.qualityGates().insertQualityGate(otherOrganization);
-
- assertThat(underTest.selectByOrganizationAndName(dbSession, organization, qualityGate1.getName()).getUuid()).isEqualTo(qualityGate1.getUuid());
- assertThat(underTest.selectByOrganizationAndName(dbSession, otherOrganization, qualityGate3.getName()).getUuid()).isEqualTo(qualityGate3.getUuid());
- assertThat(underTest.selectByOrganizationAndName(dbSession, organization, "Unknown")).isNull();
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate3 = db.qualityGates().insertQualityGate();
+
+ assertThat(underTest.selectByDefaultOrganizationAndName(dbSession, qualityGate1.getName()).getUuid()).isEqualTo(qualityGate1.getUuid());
+ assertThat(underTest.selectByDefaultOrganizationAndName(dbSession, qualityGate3.getName()).getUuid()).isEqualTo(qualityGate3.getUuid());
+ assertThat(underTest.selectByDefaultOrganizationAndName(dbSession, "Unknown")).isNull();
}
@Test
public void select_by_organization_and_id() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization);
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto qualityGate3 = db.qualityGates().insertQualityGate(otherOrganization);
-
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, qualityGate1.getUuid()).getUuid()).isEqualTo(qualityGate1.getUuid());
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, otherOrganization, qualityGate3.getUuid()).getUuid()).isEqualTo(qualityGate3.getUuid());
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, "123")).isNull();
- }
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate3 = db.qualityGates().insertQualityGate();
- @Test
- public void select_default() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization);
- db.getDbClient().organizationDao().setDefaultQualityGate(dbSession, organization, qualityGate);
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto otherQualityGate = db.qualityGates().insertQualityGate(otherOrganization);
- db.getDbClient().organizationDao().setDefaultQualityGate(dbSession, otherOrganization, otherQualityGate);
-
- assertThat(underTest.selectDefault(dbSession, organization).getUuid()).isEqualTo(qualityGate.getUuid());
- assertThat(underTest.selectDefault(dbSession, otherOrganization).getUuid()).isEqualTo(otherQualityGate.getUuid());
+ assertThat(underTest.selectByDefaultOrganizationAndUuid(dbSession, qualityGate1.getUuid()).getUuid()).isEqualTo(qualityGate1.getUuid());
+ assertThat(underTest.selectByDefaultOrganizationAndUuid(dbSession, qualityGate3.getUuid()).getUuid()).isEqualTo(qualityGate3.getUuid());
+ assertThat(underTest.selectByDefaultOrganizationAndUuid(dbSession, "123")).isNull();
}
@Test
public void select_by_project_uuid() {
- OrganizationDto organization = db.organizations().insert();
+ ProjectDto project = db.components().insertPrivateProjectDto();
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
+ QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate();
+ QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
- QGateWithOrgDto qualityGate1 = db.qualityGates().insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization);
-
- OrganizationDto otherOrganization = db.organizations().insert();
- QGateWithOrgDto qualityGate3 = db.qualityGates().insertQualityGate(otherOrganization);
+ QualityGateDto qualityGate3 = db.qualityGates().insertQualityGate();
db.qualityGates().associateProjectToQualityGate(project, qualityGate1);
@@ -189,29 +155,27 @@ public class QualityGateDaoTest {
@Test
public void delete() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = qualityGateDbTester.insertQualityGate(organization);
- QGateWithOrgDto otherQualityGate = qualityGateDbTester.insertQualityGate(organization);
+ QualityGateDto qualityGate = qualityGateDbTester.insertQualityGate();
+ QualityGateDto otherQualityGate = qualityGateDbTester.insertQualityGate();
underTest.delete(qualityGate, dbSession);
dbSession.commit();
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, qualityGate.getUuid())).isNull();
+ assertThat(underTest.selectByDefaultOrganizationAndUuid(dbSession, qualityGate.getUuid())).isNull();
assertThat(db.countSql(dbSession, format("select count(*) from org_quality_gates where quality_gate_uuid='%s'", qualityGate.getUuid()))).isZero();
- assertThat(underTest.selectByOrganizationAndUuid(dbSession, organization, otherQualityGate.getUuid())).isNotNull();
+ assertThat(underTest.selectByDefaultOrganizationAndUuid(dbSession, otherQualityGate.getUuid())).isNotNull();
assertThat(db.countSql(dbSession, format("select count(*) from org_quality_gates where quality_gate_uuid='%s'", otherQualityGate.getUuid()))).isEqualTo(1);
}
@Test
public void delete_by_uuids() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate1 = qualityGateDbTester.insertQualityGate(organization);
- QGateWithOrgDto qualityGate2 = qualityGateDbTester.insertQualityGate(organization);
+ QualityGateDto qualityGate1 = qualityGateDbTester.insertQualityGate();
+ QualityGateDto qualityGate2 = qualityGateDbTester.insertQualityGate();
underTest.deleteByUuids(dbSession, asList(qualityGate1.getUuid(), qualityGate2.getUuid()));
dbSession.commit();
- assertThat(underTest.selectAll(dbSession, organization).stream())
+ assertThat(underTest.selectAll(dbSession).stream())
.extracting(QualityGateDto::getUuid)
.doesNotContain(qualityGate1.getUuid(), qualityGate2.getUuid());
}
@@ -225,36 +189,36 @@ public class QualityGateDaoTest {
assertThat(db.countRowsOfTable(dbSession, "quality_gates")).isEqualTo(nbOfQualityGates);
}
- @Test
- public void deleteOrgQualityGatesByOrganization() {
- OrganizationDto organization = db.organizations().insert();
- qualityGateDbTester.insertQualityGate(organization);
- OrganizationDto otherOrganization = db.organizations().insert();
- qualityGateDbTester.insertQualityGate(otherOrganization);
-
- underTest.deleteOrgQualityGatesByOrganization(dbSession, organization);
- dbSession.commit();
-
- assertThat(db.select("select organization_uuid as \"organizationUuid\" from org_quality_gates"))
- .extracting(row -> (String) row.get("organizationUuid"))
- .containsOnly(otherOrganization.getUuid());
- }
+ // TODO::
+ // @Test
+ // public void deleteOrgQualityGatesByOrganization() {
+ // OrganizationDto organization = db.organizations().insert();
+ // qualityGateDbTester.insertQualityGate(organization);
+ // OrganizationDto otherOrganization = db.organizations().insert();
+ // qualityGateDbTester.insertQualityGate(otherOrganization);
+ //
+ // underTest.deleteOrgQualityGatesByOrganization(dbSession, organization);
+ // dbSession.commit();
+ //
+ // assertThat(db.select("select organization_uuid as \"organizationUuid\" from org_quality_gates"))
+ // .extracting(row -> (String) row.get("organizationUuid"))
+ // .containsOnly(otherOrganization.getUuid());
+ // }
@Test
public void update() {
- OrganizationDto organization = db.organizations().insert();
- QGateWithOrgDto qualityGate = qualityGateDbTester.insertQualityGate(organization, qg -> qg.setName("old name"));
+ QualityGateDto qualityGate = qualityGateDbTester.insertQualityGate(qg -> qg.setName("old name"));
underTest.update(qualityGate.setName("Not so strict"), dbSession);
dbSession.commit();
- QGateWithOrgDto reloaded = underTest.selectByOrganizationAndUuid(dbSession, organization, qualityGate.getUuid());
+ QualityGateDto reloaded = underTest.selectByDefaultOrganizationAndUuid(dbSession, qualityGate.getUuid());
assertThat(reloaded.getName()).isEqualTo("Not so strict");
}
private void insertQualityGates() {
- qualityGateDbTester.insertQualityGate(db.getDefaultOrganization(), g -> g.setName("Very strict").setBuiltIn(false));
- qualityGateDbTester.insertQualityGate(db.getDefaultOrganization(), g -> g.setName("Balanced").setBuiltIn(false));
- qualityGateDbTester.insertQualityGate(db.getDefaultOrganization(), g -> g.setName("Lenient").setBuiltIn(false));
+ qualityGateDbTester.insertQualityGate(g -> g.setName("Very strict").setBuiltIn(false));
+ qualityGateDbTester.insertQualityGate(g -> g.setName("Balanced").setBuiltIn(false));
+ qualityGateDbTester.insertQualityGate(g -> g.setName("Lenient").setBuiltIn(false));
}
}
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualitygate/QualityGateDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualitygate/QualityGateDbTester.java
index 5d6f40a5799..7717df2cda6 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualitygate/QualityGateDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualitygate/QualityGateDbTester.java
@@ -30,11 +30,13 @@ import org.sonar.db.DbTester;
import org.sonar.db.metric.MetricDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
+import org.sonar.db.property.PropertyDto;
import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric;
import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
public class QualityGateDbTester {
+ private static final String DEFAULT_QUALITY_GATE_PROPERTY_NAME = "qualitygate.default";
private final DbTester db;
private final DbClient dbClient;
@@ -80,6 +82,7 @@ public class QualityGateDbTester {
db.commit();
}
+ @Deprecated
public void associateQualityGateToOrganization(QualityGateDto qualityGate, OrganizationDto organization) {
dbClient.qualityGateDao().associate(dbSession, Uuids.createFast(), organization, qualityGate);
db.commit();
@@ -87,19 +90,13 @@ public class QualityGateDbTester {
@SafeVarargs
public final QualityGateDto createDefaultQualityGate(Consumer<QualityGateDto>... dtoPopulators) {
- return createDefaultQualityGate(db.getDefaultOrganization(), dtoPopulators);
- }
-
- @SafeVarargs
- @Deprecated
- public final QualityGateDto createDefaultQualityGate(OrganizationDto organization, Consumer<QualityGateDto>... dtoPopulators) {
- QualityGateDto defaultQGate = insertQualityGate(organization, dtoPopulators);
- setDefaultQualityGate(organization, defaultQGate);
+ QualityGateDto defaultQGate = insertQualityGate(dtoPopulators);
+ setDefaultQualityGate(defaultQGate);
return defaultQGate;
}
- public void setDefaultQualityGate(OrganizationDto organization, QualityGateDto qualityGate) {
- dbClient.organizationDao().update(dbSession, organization.setDefaultQualityGateUuid(qualityGate.getUuid()));
+ public void setDefaultQualityGate(QualityGateDto qualityGate) {
+ dbClient.propertiesDao().saveProperty(new PropertyDto().setKey(DEFAULT_QUALITY_GATE_PROPERTY_NAME).setValue(qualityGate.getUuid()));
dbSession.commit();
}