public OrganizationDto toDto() { return new OrganizationDto() .setName(name) .setKey(key) .setUuid(uuid) .setDefaultQualityGateUuid(defaultQualityGateUuid); }
@Test public void verify_getters() { Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); assertThat(organization.getUuid()).isEqualTo("uuid"); assertThat(organization.getKey()).isEqualTo("key"); assertThat(organization.getName()).isEqualTo("name"); assertThat(organization.getDefaultQualityGateUuid()).isEqualTo("uuid1"); }
@Test public void equals_is_based_on_uuid_only() { Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1"))); assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("other key").setName("name").setDefaultQualityGateUuid("uuid1"))); assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("other name").setDefaultQualityGateUuid("uuid1"))); assertThat(organization).isEqualTo(Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("other uuid"))); assertThat(organization).isNotEqualTo(Organization.from(underTest.setUuid("other uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1"))); assertThat(organization).isNotEqualTo(null); assertThat(organization).isNotEqualTo("toto"); }
@Test public void hashcode_is_based_on_uuid_only() { Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); assertThat(organization.hashCode()).isEqualTo("uuid".hashCode()); } }
@Test public void countByQuery() { insertOrganization(copyOf(ORGANIZATION_DTO_1).setUuid("uuid3").setKey("key-3")); insertOrganization(copyOf(ORGANIZATION_DTO_1).setUuid("uuid1").setKey("key-1")); insertOrganization(copyOf(ORGANIZATION_DTO_1).setUuid("uuid2").setKey("key-2")); insertOrganization(copyOf(ORGANIZATION_DTO_1).setUuid("uuid5").setKey("key-5")); insertOrganization(copyOf(ORGANIZATION_DTO_1).setUuid("uuid4").setKey("key-4")); assertThat(underTest.countByQuery(dbSession, returnAll())).isEqualTo(5); assertThat(underTest.countByQuery(dbSession, newQueryWithKeys("key-1", "key-2"))).isEqualTo(2); assertThat(underTest.countByQuery(dbSession, newQueryWithKeys("unknown"))).isZero(); }
@Test public void verify_toString() { Organization organization = Organization.from(underTest.setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("uuid1")); assertThat(organization.toString()).isEqualTo("Organization{uuid='uuid', key='key', name='name', defaultQualityGateUuid='uuid1'}"); }
@Test @UseDataProvider("booleanValues") public void organization_is_not_null_when_organization_are_enabled(boolean allStepsExecuted) { analysisMetadataHolder .setOrganizationsEnabled(true) .setOrganization(Organization.from( new OrganizationDto().setKey(organizationKey).setName(organizationName).setUuid(organizationUuid).setDefaultQualityGateUuid("foo"))); underTest.finished(allStepsExecuted); verify(postProjectAnalysisTask).finished(projectAnalysisArgumentCaptor.capture()); org.sonar.api.ce.posttask.Organization organization = projectAnalysisArgumentCaptor.getValue().getOrganization().get(); assertThat(organization.getKey()).isEqualTo(organizationKey); assertThat(organization.getName()).isEqualTo(organizationName); }
@Test public void build_throws_NPE_if_key_is_null() { underTest.setUuid("uuid"); expectedException.expect(NullPointerException.class); expectedException.expectMessage("key can't be null"); Organization.from(underTest); }
public AnalysisMetadataHolderRule setOrganizationUuid(String uuid, String defaultQualityGateUuid) { requireNonNull(uuid, "organization uuid can't be null"); this.organization .setProperty(Organization.from(new OrganizationDto().setUuid(uuid).setKey("key_" + uuid).setName("name_" + uuid).setDefaultQualityGateUuid(defaultQualityGateUuid))); return this; }
@Test @UseDataProvider("booleanValues") public void organization_is_null_when_organization_are_disabled(boolean allStepsExecuted) { analysisMetadataHolder .setOrganizationsEnabled(false) .setOrganization(Organization.from( new OrganizationDto().setKey(organizationKey).setName(organizationName).setUuid(organizationUuid).setDefaultQualityGateUuid("foo"))); underTest.finished(allStepsExecuted); verify(postProjectAnalysisTask).finished(projectAnalysisArgumentCaptor.capture()); assertThat(projectAnalysisArgumentCaptor.getValue().getOrganization()).isEmpty(); }
@Test public void build_throws_NPE_if_name_is_null() { underTest.setUuid("uuid").setKey("key"); expectedException.expect(NullPointerException.class); expectedException.expectMessage("name can't be null"); Organization.from(underTest); }
@Test public void build_throws_NPE_if_defaultQualityGateUuid_is_null() { underTest.setUuid("uuid").setKey("key").setName("name"); expectedException.expect(NullPointerException.class); expectedException.expectMessage("defaultQualityGateUuid can't be null"); Organization.from(underTest); }
@Test public void selectByOrganization() { OrganizationDto organization = db.organizations().insert(); db.getDbClient().almAppInstallDao().insertOrUpdate(db.getSession(), ALM.GITHUB, "the-owner", false, "123456", null); // could be improved, insertOrUpdate should return the DTO with its uuid Optional<AlmAppInstallDto> install = db.getDbClient().almAppInstallDao().selectByOwnerId(db.getSession(), ALM.GITHUB, "the-owner"); db.getDbClient().organizationAlmBindingDao().insert(db.getSession(), organization, install.get(), "xxx", "xxx"); db.commit(); assertThat(underTest.selectByOrganization(db.getSession(), GITHUB, organization).get().getUuid()).isEqualTo(install.get().getUuid()); assertThat(underTest.selectByOrganization(db.getSession(), BITBUCKETCLOUD, organization)).isEmpty(); assertThat(underTest.selectByOrganization(db.getSession(), GITHUB, new OrganizationDto().setUuid("other-organization"))).isEmpty(); }
@Test public void load_login_for_scm_account() { UserDto user = db.users().insertUser(u -> u.setScmAccounts(asList("charlie", "jesuis@charlie.com"))); OrganizationDto organization = db.organizations().insert(o -> o.setUuid(ORGANIZATION_UUID)); analysisMetadataHolder.setOrganization(Organization.from(organization)); db.organizations().addMember(organization, user); userIndexer.indexOnStartup(null); UserIndex index = new UserIndex(es.client(), System2.INSTANCE); ScmAccountToUserLoader underTest = new ScmAccountToUserLoader(index, analysisMetadataHolder); assertThat(underTest.load("missing")).isNull(); assertThat(underTest.load("jesuis@charlie.com")).isEqualTo(user.getUuid()); }
@Test public void select_for_indexing() { OrganizationDto org1 = db.organizations().insert(o -> o.setUuid("ORG_1")); OrganizationDto org2 = db.organizations().insert(o -> o.setUuid("ORG_2")); UserDto user1 = db.users().insertUser(); UserDto user2 = db.users().insertUser(); db.organizations().addMember(org1, user1); db.organizations().addMember(org1, user2); db.organizations().addMember(org2, user1); List<Tuple> result = new ArrayList<>(); underTest.selectForUserIndexing(dbSession, asList(user1.getUuid(), user2.getUuid()), (login, org) -> result.add(tuple(login, org))); assertThat(result).containsOnly(tuple(user1.getUuid(), "ORG_1"), tuple(user1.getUuid(), "ORG_2"), tuple(user2.getUuid(), "ORG_1")); }
@Test public void warn_if_multiple_users_share_the_same_scm_account() { UserDto user1 = db.users().insertUser(u -> u.setLogin("charlie").setScmAccounts(asList("charlie", "jesuis@charlie.com"))); UserDto user2 = db.users().insertUser(u -> u.setLogin("another.charlie").setScmAccounts(asList("charlie"))); OrganizationDto organization = db.organizations().insert(o -> o.setUuid(ORGANIZATION_UUID)); analysisMetadataHolder.setOrganization(Organization.from(organization)); db.organizations().addMember(organization, user1, user2); userIndexer.indexOnStartup(null); UserIndex index = new UserIndex(es.client(), System2.INSTANCE); ScmAccountToUserLoader underTest = new ScmAccountToUserLoader(index, analysisMetadataHolder); assertThat(underTest.load("charlie")).isNull(); assertThat(logTester.logs(LoggerLevel.WARN)).contains("Multiple users share the SCM account 'charlie': another.charlie, charlie"); }
private void insertDefaultOrganization() { defaultOrganization = OrganizationTesting.newOrganizationDto().setUuid(defaultOrganizationUuid); try (DbSession dbSession = db.getMyBatis().openSession(false)) { client.organizationDao().insert(dbSession, defaultOrganization, false); client.internalPropertiesDao().save(dbSession, "organization.default", defaultOrganization.getUuid()); dbSession.commit(); } }
@Before public void setUp() throws Exception { organizationDto = db.organizations().insertForUuid(ORGANIZATION_UUID); analysisMetadataHolder.setOrganization(Organization.from( new OrganizationDto().setUuid(ORGANIZATION_UUID).setKey("Organization key").setName("Organization name").setDefaultQualityGateUuid(QUALITY_GATE_UUID))); }
@Test public void setOrganization_throws_ISE_if_called_twice() { Organization organization = Organization.from(new OrganizationDto().setUuid("uuid").setKey("key").setName("name").setDefaultQualityGateUuid("anyuuidr")); underTest.setOrganization(organization); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("Organization has already been set"); underTest.setOrganization(organization); }
private OrganizationDto copyOf(OrganizationDto organizationDto) { return new OrganizationDto() .setUuid(organizationDto.getUuid()) .setKey(organizationDto.getKey()) .setName(organizationDto.getName()) .setDescription(organizationDto.getDescription()) .setUrl(organizationDto.getUrl()) .setDefaultQualityGateUuid(organizationDto.getDefaultQualityGateUuid()) .setSubscription(organizationDto.getSubscription()) .setAvatarUrl(organizationDto.getAvatarUrl()); }