aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server-common
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2022-05-04 15:47:32 -0500
committersonartech <sonartech@sonarsource.com>2022-05-25 20:03:16 +0000
commit89448847c08173c261453fc4aa3cf7fca23b6c8f (patch)
tree6cc95fb05ddbd1f0552d35a0630013ae7dab78fa /server/sonar-server-common
parent26c54237c1c3eb870b19c0a38176229a24c2cfe1 (diff)
downloadsonarqube-89448847c08173c261453fc4aa3cf7fca23b6c8f.tar.gz
sonarqube-89448847c08173c261453fc4aa3cf7fca23b6c8f.zip
SONAR-16316 Fill report data
Diffstat (limited to 'server/sonar-server-common')
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/qualitygate/QualityGateFinder.java43
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/qualitygate/QualityGateFinderTest.java16
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