diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2022-05-04 15:47:32 -0500 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2022-05-25 20:03:16 +0000 |
commit | 89448847c08173c261453fc4aa3cf7fca23b6c8f (patch) | |
tree | 6cc95fb05ddbd1f0552d35a0630013ae7dab78fa /server/sonar-server-common | |
parent | 26c54237c1c3eb870b19c0a38176229a24c2cfe1 (diff) | |
download | sonarqube-89448847c08173c261453fc4aa3cf7fca23b6c8f.tar.gz sonarqube-89448847c08173c261453fc4aa3cf7fca23b6c8f.zip |
SONAR-16316 Fill report data
Diffstat (limited to 'server/sonar-server-common')
2 files changed, 28 insertions, 31 deletions
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/QualityGateFinder.java b/server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/QualityGateFinder.java index b54651cade1..0dd9bd82eab 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/QualityGateFinder.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/QualityGateFinder.java @@ -23,25 +23,20 @@ import java.util.Optional; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.project.ProjectDto; -import org.sonar.db.property.PropertyDto; import org.sonar.db.qualitygate.QualityGateDto; -import static com.google.common.base.Preconditions.checkState; - public class QualityGateFinder { - private static final String DEFAULT_QUALITY_GATE_PROPERTY_NAME = "qualitygate.default"; - private final DbClient dbClient; public QualityGateFinder(DbClient dbClient) { this.dbClient = dbClient; } - public QualityGateData getQualityGate(DbSession dbSession, ProjectDto projectDto) { - return getQualityGate(dbSession, projectDto.getUuid()); + public QualityGateData getEffectiveQualityGate(DbSession dbSession, ProjectDto projectDto) { + return getEffectiveQualityGate(dbSession, projectDto.getUuid()); } - public QualityGateData getQualityGate(DbSession dbSession, String projectUuid) { + public QualityGateData getEffectiveQualityGate(DbSession dbSession, String projectUuid) { Optional<QualityGateData> res = getQualityGateForProject(dbSession, projectUuid); if (res.isPresent()) { return res.get(); @@ -57,30 +52,32 @@ public class QualityGateFinder { } public QualityGateDto getDefault(DbSession dbSession) { - PropertyDto qGateDefaultUuidProperty = dbClient.propertiesDao().selectGlobalProperty(dbSession, DEFAULT_QUALITY_GATE_PROPERTY_NAME); - checkState(qGateDefaultUuidProperty != null, "Default quality gate property is missing"); - dbClient.qualityGateDao().selectByUuid(dbSession, qGateDefaultUuidProperty.getValue()); - return Optional.ofNullable(dbClient.qualityGateDao().selectByUuid(dbSession, qGateDefaultUuidProperty.getValue())) - .orElseThrow(() -> new IllegalStateException("Default quality gate is missing")); - } - - public QualityGateDto getBuiltInQualityGate(DbSession dbSession) { - QualityGateDto builtIn = dbClient.qualityGateDao().selectBuiltIn(dbSession); - checkState(builtIn != null, "Builtin quality gate is missing."); - return builtIn; + return Optional.ofNullable(dbClient.qualityGateDao().selectDefault(dbSession)).orElseThrow(() -> new IllegalStateException("Default quality gate is missing")); } public static class QualityGateData { - private final QualityGateDto qualityGate; + private final String uuid; + private final String name; private final boolean isDefault; + private final boolean builtIn; private QualityGateData(QualityGateDto qualityGate, boolean isDefault) { - this.qualityGate = qualityGate; + this.uuid = qualityGate.getUuid(); + this.name = qualityGate.getName(); this.isDefault = isDefault; + this.builtIn = qualityGate.isBuiltIn(); + } + + public boolean isBuiltIn() { + return builtIn; + } + + public String getUuid() { + return uuid; } - public QualityGateDto getQualityGate() { - return qualityGate; + public String getName() { + return name; } public boolean isDefault() { diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/qualitygate/QualityGateFinderTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/qualitygate/QualityGateFinderTest.java index f90437139a3..7b5ac3714af 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/qualitygate/QualityGateFinderTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/qualitygate/QualityGateFinderTest.java @@ -44,9 +44,9 @@ public class QualityGateFinderTest { ProjectDto project = db.components().insertPrivateProjectDto(); QualityGateDto dbQualityGate = db.qualityGates().createDefaultQualityGate(qg -> qg.setName("Sonar way")); - QualityGateFinder.QualityGateData result = underTest.getQualityGate(dbSession, project); + QualityGateFinder.QualityGateData result = underTest.getEffectiveQualityGate(dbSession, project); - assertThat(result.getQualityGate().getUuid()).isEqualTo(dbQualityGate.getUuid()); + assertThat(result.getUuid()).isEqualTo(dbQualityGate.getUuid()); assertThat(result.isDefault()).isTrue(); } @@ -57,9 +57,9 @@ public class QualityGateFinderTest { QualityGateDto dbQualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("My team QG")); db.qualityGates().associateProjectToQualityGate(project, dbQualityGate); - QualityGateFinder.QualityGateData result = underTest.getQualityGate(dbSession, project); + QualityGateFinder.QualityGateData result = underTest.getEffectiveQualityGate(dbSession, project); - assertThat(result.getQualityGate().getUuid()).isEqualTo(dbQualityGate.getUuid()); + assertThat(result.getUuid()).isEqualTo(dbQualityGate.getUuid()); assertThat(result.isDefault()).isFalse(); } @@ -70,7 +70,7 @@ public class QualityGateFinderTest { db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); db.commit(); - assertThatThrownBy(() -> underTest.getQualityGate(dbSession, project)) + assertThatThrownBy(() -> underTest.getEffectiveQualityGate(dbSession, project)) .isInstanceOf(IllegalStateException.class) .hasMessage("Default quality gate is missing"); } @@ -83,7 +83,7 @@ public class QualityGateFinderTest { db.qualityGates().associateProjectToQualityGate(project, dbQualityGate); db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); - assertThatThrownBy(() -> underTest.getQualityGate(dbSession, project)) + assertThatThrownBy(() -> underTest.getEffectiveQualityGate(dbSession, project)) .isInstanceOf(IllegalStateException.class) .hasMessage("Default quality gate is missing"); } @@ -94,9 +94,9 @@ public class QualityGateFinderTest { QualityGateDto dbQualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("My team QG")); db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); - assertThatThrownBy(() -> underTest.getQualityGate(dbSession, project)) + assertThatThrownBy(() -> underTest.getEffectiveQualityGate(dbSession, project)) .isInstanceOf(IllegalStateException.class) - .hasMessage("Default quality gate property is missing"); + .hasMessage("Default quality gate is missing"); } @Test |