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"); } }
public RegisterQualityGates(DbClient dbClient, QualityGateConditionsUpdater qualityGateConditionsUpdater, UuidFactory uuidFactory, System2 system2) { this.dbClient = dbClient; this.qualityGateConditionsUpdater = qualityGateConditionsUpdater; this.qualityGateDao = dbClient.qualityGateDao(); this.qualityGateConditionDao = dbClient.gateConditionDao(); this.uuidFactory = uuidFactory; this.system2 = system2; }
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); }
public QGateWithOrgDto getByOrganizationAndId(DbSession dbSession, OrganizationDto organization, long qualityGateId) { return checkFound( dbClient.qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGateId), "No quality gate has been found for id %s in organization %s", qualityGateId, organization.getName()); }
public QualityGateDto getDefault(DbSession dbSession, OrganizationDto organization) { QGateWithOrgDto qgate = dbClient.qualityGateDao().selectByOrganizationAndUuid(dbSession, organization, organization.getDefaultQualityGateUuid()); checkState(qgate != null, "Default quality gate [%s] is missing on organization [%s]", organization.getDefaultQualityGateUuid(), organization.getUuid()); return qgate; }
private QualityGateDto rename(DbSession dbSession, OrganizationDto organization, long id, String name) { QGateWithOrgDto qualityGate = wsSupport.getByOrganizationAndId(dbSession, organization, id); wsSupport.checkCanEdit(qualityGate); checkArgument(!isNullOrEmpty(name), CANT_BE_EMPTY_MESSAGE, "Name"); checkNotAlreadyExists(dbSession, organization, qualityGate, name); qualityGate.setName(name); dbClient.qualityGateDao().update(qualityGate, dbSession); dbSession.commit(); return qualityGate; }
@Before public void setUp() throws Exception { when(dbClient.qualityGateDao()).thenReturn(qualityGateDao); when(dbClient.gateConditionDao()).thenReturn(qualityGateConditionDao); when(METRIC_1.getKey()).thenReturn("metric"); when(METRIC_2.getKey()).thenReturn("new_metric"); }
@Override public QualityGate findDefaultQualityGate(Organization organization) { try (DbSession dbSession = dbClient.openSession(false)) { QualityGateDto qualityGateDto = dbClient.qualityGateDao().selectByOrganizationAndUuid(dbSession, organization.toDto(), organization.getDefaultQualityGateUuid()); if (qualityGateDto == null) { throw new IllegalStateException("The default Quality gate is missing on organization " + organization.getKey()); } return toQualityGate(dbSession, qualityGateDto); } }
public QualityGateDto create(DbSession dbSession, OrganizationDto organizationDto, String name) { validateQualityGate(dbSession, organizationDto, name); QualityGateDto newQualityGate = new QualityGateDto() .setName(name) .setBuiltIn(false) .setUuid(uuidFactory.create()); dbClient.qualityGateDao().insert(dbSession, newQualityGate); dbClient.qualityGateDao().associate(dbSession, uuidFactory.create(), organizationDto, newQualityGate); return newQualityGate; }
private QualityGateDto createQualityGate(DbSession dbSession, String name) { QualityGateDto qualityGate = new QualityGateDto() .setName(name) .setBuiltIn(true) .setUuid(uuidFactory.create()) .setCreatedAt(new Date(system2.now())); return dbClient.qualityGateDao().insert(dbSession, qualityGate); }
@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 createForUser_associates_to_built_in_quality_gate() { QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate(); UserDto user = db.users().insertUser(A_LOGIN); when(organizationValidation.generateKeyFrom(A_LOGIN)).thenReturn(SLUG_OF_A_LOGIN); enableCreatePersonalOrg(true); builtInQProfileRepositoryRule.initialize(); underTest.createForUser(dbSession, user); OrganizationDto organization = dbClient.organizationDao().selectByKey(dbSession, SLUG_OF_A_LOGIN).get(); assertThat(dbClient.qualityGateDao().selectDefault(dbSession, organization).getUuid()).isEqualTo(builtInQualityGate.getUuid()); }
public QualityGateDto insertBuiltInQualityGate() { QualityGateDto builtin = dbClient.qualityGateDao().insert(dbSession, new QualityGateDto() .setName("Sonar way") .setUuid(Uuids.createFast()) .setBuiltIn(true) .setCreatedAt(new Date())); dbSession.commit(); return builtin; }
@Test public void create_associates_to_built_in_quality_gate() throws OrganizationUpdater.KeyConflictException { QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate(); builtInQProfileRepositoryRule.initialize(); UserDto user = db.users().insertUser(); underTest.create(dbSession, user, FULL_POPULATED_NEW_ORGANIZATION, o -> { }); OrganizationDto organization = dbClient.organizationDao().selectByKey(dbSession, FULL_POPULATED_NEW_ORGANIZATION.getKey()).get(); assertThat(dbClient.qualityGateDao().selectDefault(dbSession, organization).getUuid()).isEqualTo(builtInQualityGate.getUuid()); }
@Test public void rename_with_same_name() { OrganizationDto organization = db.organizations().insert(); userSession.logIn("john").addPermission(ADMINISTER_QUALITY_GATES, organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization, qg -> qg.setName("name")); ws.newRequest() .setParam("id", qualityGate.getId().toString()) .setParam("name", "name") .setParam("organization", organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectById(db.getSession(), qualityGate.getId()).getName()).isEqualTo("name"); }
@Test public void delete_quality_gate() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); ws.newRequest() .setParam(PARAM_ID, qualityGate.getId().toString()) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGate.getId())).isNull(); }
@Test public void delete_quality_gate_if_non_default_when_a_default_exist() { OrganizationDto organization = db.organizations().insert(); db.qualityGates().createDefaultQualityGate(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization); userSession.addPermission(ADMINISTER_QUALITY_GATES, organization); ws.newRequest() .setParam(PARAM_ID, valueOf(qualityGate.getId())) .setParam(PARAM_ORGANIZATION, organization.getKey()) .execute(); assertThat(db.getDbClient().qualityGateDao().selectByOrganizationAndId(dbSession, organization, qualityGate.getId())).isNull(); }
@Test public void fail_when_project_qgate_defined_does_not_exists() { ComponentDto project = db.components().insertPrivateProject(); QualityGateDto dbQualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization(), qg -> qg.setName("My team QG")); db.qualityGates().associateProjectToQualityGate(project, dbQualityGate); db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); assertThat(underTest.getQualityGate(dbSession, db.getDefaultOrganization(), project)).isEmpty(); }
@Test public void fail_when_default_quality_gate_does_not_exists() { QualityGateDto dbQualityGate = db.qualityGates().insertQualityGate(db.getDefaultOrganization(), qg -> qg.setName("My team QG")); db.qualityGates().setDefaultQualityGate(db.getDefaultOrganization(), dbQualityGate); db.getDbClient().qualityGateDao().delete(dbQualityGate, dbSession); expectedException.expect(IllegalStateException.class); expectedException.expectMessage(format("Default quality gate [%s] is missing on organization [%s]", dbQualityGate.getUuid(), db.getDefaultOrganization().getUuid())); underTest.getDefault(dbSession, db.getDefaultOrganization()); }