public void setDefault(DbSession dbSession, OrganizationDto organizationDto, QualityGateDto qualityGateDto) { organizationDto.setDefaultQualityGateUuid(qualityGateDto.getUuid()); dbClient.qualityGateDao().update(qualityGateDto, dbSession); }
public void associate(DbSession dbSession, String uuid, OrganizationDto organization, QualityGateDto qualityGate) { mapper(dbSession).insertOrgQualityGate(uuid, organization.getUuid(), qualityGate.getUuid()); }
private OrganizationDto insertOrganization(DbSession dbSession, NewOrganization newOrganization, QualityGateDto builtInQualityGate, Consumer<OrganizationDto>... extendCreation) { OrganizationDto res = new OrganizationDto() .setUuid(uuidFactory.create()) .setName(newOrganization.getName()) .setKey(newOrganization.getKey()) .setDescription(newOrganization.getDescription()) .setUrl(newOrganization.getUrl()) .setDefaultQualityGateUuid(builtInQualityGate.getUuid()) .setAvatarUrl(newOrganization.getAvatar()) .setSubscription(FREE); Arrays.stream(extendCreation).forEach(c -> c.accept(res)); dbClient.organizationDao().insert(dbSession, res, false); return res; }
@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::getId, QGateWithOrgDto::getUuid, QGateWithOrgDto::getOrganizationUuid, QGateWithOrgDto::getName) .containsExactly(qgate.getId(), qgate.getUuid(), org.getUuid(), qgate.getName()); }
@Test public void insert() { QualityGateDto newQgate = new QualityGateDto() .setUuid(Uuids.createFast()) .setName("My Quality Gate") .setBuiltIn(false) .setUpdatedAt(new Date()); underTest.insert(dbSession, newQgate); dbSession.commit(); QualityGateDto reloaded = underTest.selectById(dbSession, newQgate.getId()); assertThat(reloaded.getName()).isEqualTo("My Quality Gate"); assertThat(reloaded.getUuid()).isEqualTo(newQgate.getUuid()); assertThat(reloaded.isBuiltIn()).isFalse(); assertThat(reloaded.getCreatedAt()).isNotNull(); assertThat(reloaded.getUpdatedAt()).isNotNull(); }
public void setDefaultQualityGate(OrganizationDto organization, QualityGateDto qualityGate) { dbClient.organizationDao().update(dbSession, organization.setDefaultQualityGateUuid(qualityGate.getUuid())); dbSession.commit(); }
@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()); }
@Override public void handle(Request request, Response response) { Long id = parseId(request, PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); userSession.checkPermission(ADMINISTER_QUALITY_GATES, organization); QualityGateDto qualityGate = wsSupport.getByOrganizationAndId(dbSession, organization, id); organization.setDefaultQualityGateUuid(qualityGate.getUuid()); dbClient.organizationDao().update(dbSession, organization); dbSession.commit(); } response.noContent(); }
@SafeVarargs public final QGateWithOrgDto insertQualityGate(OrganizationDto organization, Consumer<QualityGateDto>... dtoPopulators) { QualityGateDto qualityGate = new QualityGateDto() .setName(randomAlphanumeric(30)) .setUuid(Uuids.createFast()) .setBuiltIn(false); Arrays.stream(dtoPopulators).forEach(dtoPopulator -> dtoPopulator.accept(qualityGate)); dbClient.qualityGateDao().insert(dbSession, qualityGate); dbClient.qualityGateDao().associate(dbSession, Uuids.createFast(), organization, qualityGate); db.commit(); return dbClient.qualityGateDao().selectByOrganizationAndUuid(dbSession, organization, qualityGate.getUuid()); }
@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 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 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()); }
public void setDefault(DbSession dbSession, OrganizationDto organizationDto, QualityGateDto qualityGateDto) { organizationDto.setDefaultQualityGateUuid(qualityGateDto.getUuid()); dbClient.qualityGateDao().update(qualityGateDto, dbSession); }
private OrganizationDto insertOrganization(DbSession dbSession, NewOrganization newOrganization, QualityGateDto builtInQualityGate, Consumer<OrganizationDto>... extendCreation) { OrganizationDto res = new OrganizationDto() .setUuid(uuidFactory.create()) .setName(newOrganization.getName()) .setKey(newOrganization.getKey()) .setDescription(newOrganization.getDescription()) .setUrl(newOrganization.getUrl()) .setDefaultQualityGateUuid(builtInQualityGate.getUuid()) .setAvatarUrl(newOrganization.getAvatar()); Arrays.stream(extendCreation).forEach(c -> c.accept(res)); dbClient.organizationDao().insert(dbSession, res, false); return res; }
@Override public void handle(Request request, Response response) { Long id = parseId(request, PARAM_ID); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganization(dbSession, request); userSession.checkPermission(ADMINISTER_QUALITY_GATES, organization); QualityGateDto qualityGate = qualityGateFinder.getByOrganizationAndId(dbSession, organization, id); organization.setDefaultQualityGateUuid(qualityGate.getUuid()); dbClient.organizationDao().update(dbSession, organization); dbSession.commit(); } response.noContent(); }