private void checkQualityGateDoesNotAlreadyExist(DbSession dbSession, OrganizationDto organizationDto, String name) { QualityGateDto existingQgate = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organizationDto, name); checkArgument(existingQgate == null, IS_ALREADY_USED_MESSAGE, "Name"); } }
private QualityGateDto getByNameOrId(DbSession dbSession, OrganizationDto organization, @Nullable String name, @Nullable Long id) { if (name != null) { return checkFound(dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organization, name), "No quality gate has been found for name %s", name); } if (id != null) { return wsSupport.getByOrganizationAndId(dbSession, organization, id); } throw new IllegalArgumentException("No parameter has been set to identify a quality gate"); }
private void checkNotAlreadyExists(DbSession dbSession, OrganizationDto organization, QualityGateDto qualityGate, String name) { QualityGateDto existingQgate = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organization, name); boolean isModifyingCurrentQgate = existingQgate == null || existingQgate.getId().equals(qualityGate.getId()); checkArgument(isModifyingCurrentQgate, "Name '%s' has already been taken", name); }
@Test public void create_quality_gate_with_organization() { OrganizationDto organizationDto = organizationDbTester.insert(); logInAsQualityGateAdmin(organizationDto); String qgName = "Default"; CreateResponse response = executeRequest(Optional.of(organizationDto), qgName); assertThat(response.getName()).isEqualTo(qgName); assertThat(response.getId()).isNotNull(); dbSession.commit(); QualityGateDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organizationDto, qgName); assertThat(qualityGateDto).isNotNull(); }
@Test public void default_organization_is_used_when_no_parameter() { logInAsQualityGateAdmin(db.getDefaultOrganization()); String qgName = "Default"; CreateResponse response = executeRequest(Optional.empty(), qgName); assertThat(response.getName()).isEqualTo(qgName); assertThat(response.getId()).isNotNull(); dbSession.commit(); QualityGateDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, db.getDefaultOrganization(), qgName); assertThat(qualityGateDto).isNotNull(); }
@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(); }
@Test public void default_organization_is_used_when_no_organization_parameter(){ OrganizationDto defaultOrganization = db.getDefaultOrganization(); userSession.addPermission(ADMINISTER_QUALITY_GATES, defaultOrganization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(defaultOrganization); ws.newRequest() .setParam(PARAM_ID, qualityGate.getId().toString()) .setParam(PARAM_NAME, "new-name") .execute(); QGateWithOrgDto actual = db.getDbClient().qualityGateDao().selectByOrganizationAndName(dbSession, defaultOrganization, "new-name"); assertThat(actual).isNotNull(); assertThat(actual.getOrganizationUuid()).isEqualTo(defaultOrganization.getUuid()); }
@Test public void delete_quality_gates() { QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate(); OrganizationDto organization = db.organizations().insert(); db.qualityGates().associateQualityGateToOrganization(builtInQualityGate, organization); OrganizationDto otherOrganization = db.organizations().insert(); db.qualityGates().associateQualityGateToOrganization(builtInQualityGate, otherOrganization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); QGateWithOrgDto qualityGateInOtherOrg = db.qualityGates().insertQualityGate(otherOrganization); logInAsAdministrator(organization); sendRequest(organization); verifyOrganizationDoesNotExist(organization); assertThat(db.select("select uuid as \"uuid\" from quality_gates")) .extracting(row -> (String) row.get("uuid")) .containsExactlyInAnyOrder(qualityGateInOtherOrg.getUuid(), builtInQualityGate.getUuid()); assertThat(db.select("select organization_uuid as \"organizationUuid\" from org_quality_gates")) .extracting(row -> (String) row.get("organizationUuid")) .containsOnly(otherOrganization.getUuid()); // Check built-in quality gate is still available in other organization assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndName(db.getSession(), otherOrganization, "Sonar way")).isNotNull(); verify(projectLifeCycleListeners).onProjectsDeleted(emptySet()); }
@Test public void copy() { OrganizationDto organization = db.organizations().insert(); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); MetricDto metric = db.measures().insertMetric(); QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric); ws.newRequest() .setParam(PARAM_ID, qualityGate.getId().toString()) .setParam(PARAM_NAME, "new-name") .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); QGateWithOrgDto actual = db.getDbClient().qualityGateDao().selectByOrganizationAndName(dbSession, organization, "new-name"); assertThat(actual).isNotNull(); assertThat(actual.isBuiltIn()).isFalse(); assertThat(actual.getId()).isNotEqualTo(qualityGate.getId()); assertThat(actual.getUuid()).isNotEqualTo(qualityGate.getUuid()); assertThat(db.getDbClient().gateConditionDao().selectForQualityGate(dbSession, qualityGate.getId())) .extracting(c-> (int) c.getMetricId(), QualityGateConditionDto::getErrorThreshold) .containsExactlyInAnyOrder(tuple(metric.getId(), condition.getErrorThreshold())); }
@Test public void quality_gates_can_have_the_same_name_in_different_organization() { OrganizationDto organization1 = db.organizations().insert(); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization1); QualityGateDto qualityGate1 = db.qualityGates().insertQualityGate(organization1); OrganizationDto organization2 = db.organizations().insert(); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization2); QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate(organization2); assertThat(qualityGate1.getName()).isNotEqualTo(qualityGate2.getName()); ws.newRequest() .setParam(PARAM_ORGANIZATION, organization2.getKey()) .setParam(PARAM_ID, qualityGate2.getId().toString()) .setParam(PARAM_NAME, qualityGate1.getName()) .execute(); QGateWithOrgDto actual = db.getDbClient().qualityGateDao().selectByOrganizationAndName(dbSession, organization2, qualityGate1.getName()); assertThat(actual).isNotNull(); }
private void checkQualityGateDoesNotAlreadyExist(DbSession dbSession, OrganizationDto organizationDto, String name) { QualityGateDto existingQgate = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organizationDto, name); checkArgument(existingQgate == null, IS_ALREADY_USED_MESSAGE, "Name"); } }
private QualityGateDto getByNameOrId(DbSession dbSession, OrganizationDto organization, @Nullable String name, @Nullable Long id) { if (name != null) { return checkFound(dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organization, name), "No quality gate has been found for name %s", name); } if (id != null) { return qualityGateFinder.getByOrganizationAndId(dbSession, organization, id); } throw new IllegalArgumentException("No parameter has been set to identify a quality gate"); }
private void checkNotAlreadyExists(DbSession dbSession, OrganizationDto organization, QualityGateDto qualityGate, String name) { QualityGateDto existingQgate = dbClient.qualityGateDao().selectByOrganizationAndName(dbSession, organization, name); boolean isModifyingCurrentQgate = existingQgate == null || existingQgate.getId().equals(qualityGate.getId()); checkArgument(isModifyingCurrentQgate, "Name '%s' has already been taken", name); }