@Override public String apply(@Nonnull Language input) { return input.getKey(); } }
/** * Adds a language to the current object */ public void add(Language language) { map.put(language.getKey(), language); }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || !(o instanceof Language)) { return false; } Language that = (Language) o; return key.equals(that.getKey()); }
public static String getExampleValue(Languages languages) { Language[] languageArray = languages.all(); if (languageArray.length > 0) { return languageArray[0].getKey(); } else { return ""; } }
/** * Get list of all supported languages. */ @Override public Collection<Language> all() { org.sonar.api.resources.Language[] all = languages.all(); Collection<Language> result = new ArrayList<>(all.length); for (org.sonar.api.resources.Language language : all) { result.add(new Language(language.getKey(), language.getName(), language.getFileSuffixes())); } return result; }
static Language language(String key, String... suffixes) { Language lang = mock(Language.class); when(lang.getKey()).thenReturn(key); when(lang.getFileSuffixes()).thenReturn(suffixes); return lang; } }
private void addLanguages(JsonWriter json) { json.name("languages").beginObject(); for (Language language : languages.all()) { json.prop(language.getKey(), language.getName()); } json.endObject(); }
@Test public void filter_on_language() { QProfileDto profile1OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey())); QProfileDto profile2OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey())); QProfileDto profileOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO2.getKey())); SearchWsResponse result = call(ws.newRequest().setParam(PARAM_LANGUAGE, XOO1.getKey())); assertThat(result.getProfilesList()).extracting(QualityProfile::getKey) .containsExactlyInAnyOrder(profile1OnXoo1.getKee(), profile2OnXoo1.getKee()) .doesNotContain(profileOnXoo2.getKee()); }
@Test public void update_built_in_profile_if_it_already_exists() { RulesProfileDto ruleProfile = newRuleProfileDto(rp -> rp.setIsBuiltIn(true).setName("Sonar way").setLanguage(FOO_LANGUAGE.getKey())); db.getDbClient().qualityProfileDao().insert(db.getSession(), ruleProfile); db.commit(); BuiltInQProfile builtIn = builtInQProfileRepositoryRule.add(FOO_LANGUAGE, ruleProfile.getName(), false); builtInQProfileRepositoryRule.initialize(); underTest.start(); assertThat(insert.callLogs).isEmpty(); assertThat(update.callLogs).containsExactly(builtIn); assertThat(logTester.logs(LoggerLevel.INFO)).contains("Update profile foo/Sonar way"); }
@Test public void no_comparison_when_param_is_false() { QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey())); QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey())); ShowResponse result = call(ws.newRequest() .setParam(PARAM_KEY, profile.getKee()) .setParam(PARAM_COMPARE_TO_SONAR_WAY, "false")); assertThat(result.hasCompareToSonarWay()).isFalse(); }
@Test public void no_comparison_when_profile_is_built_in() { QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey())); QProfileDto anotherBuiltInProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setLanguage(XOO1.getKey())); ShowResponse result = call(ws.newRequest() .setParam(PARAM_KEY, anotherBuiltInProfile.getKee()) .setParam(PARAM_COMPARE_TO_SONAR_WAY, "true")); assertThat(result.hasCompareToSonarWay()).isFalse(); }
@Test public void default_organization() { OrganizationDto defaultOrganization = db.getDefaultOrganization(); OrganizationDto anotherOrganization = db.organizations().insert(); QProfileDto profile1OnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO1.getKey())); QProfileDto profile2OnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO2.getKey())); QProfileDto profileOnAnotherOrg = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO1.getKey())); SearchWsResponse result = call(ws.newRequest()); assertThat(result.getProfilesList()).extracting(QualityProfile::getKey) .containsExactlyInAnyOrder(profile1OnDefaultOrg.getKee(), profile2OnDefaultOrg.getKee()) .doesNotContain(profileOnAnotherOrg.getKee()); }
@Override public void handle(Request request, Response response) throws Exception { String query = request.param(Param.TEXT_QUERY); int pageSize = request.mandatoryParamAsInt("ps"); try (JsonWriter json = response.newJsonWriter()) { json.beginObject().name("languages").beginArray(); for (Language language : listMatchingLanguages(query, pageSize)) { json.beginObject().prop("key", language.getKey()).prop("name", language.getName()).endObject(); } json.endArray().endObject(); } }
@Test public void default_profile() { QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey())); db.qualityProfiles().setAsDefault(profile); ShowResponse result = call(ws.newRequest().setParam(PARAM_KEY, profile.getKee())); assertThat(result.getProfile().getIsDefault()).isTrue(); }
private QProfileDto createProfile() { QProfileDto profile = QualityProfileTesting.newQualityProfileDto() .setOrganizationUuid(organization.getUuid()) .setLanguage(language.getKey()); dbClient.qualityProfileDao().insert(dbSession, profile); dbSession.commit(); return profile; }
@Test public void specific_organization() { OrganizationDto defaultOrganization = db.getDefaultOrganization(); OrganizationDto specificOrganization = db.organizations().insert(); QProfileDto profile1OnSpecificOrg = db.qualityProfiles().insert(specificOrganization, p -> p.setLanguage(XOO1.getKey())); QProfileDto profile2OnSpecificOrg = db.qualityProfiles().insert(specificOrganization, p -> p.setLanguage(XOO2.getKey())); QProfileDto profileOnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO1.getKey())); SearchWsResponse result = call(ws.newRequest().setParam(PARAM_ORGANIZATION, specificOrganization.getKey())); assertThat(result.getProfilesList()).extracting(QualityProfile::getKey) .containsExactlyInAnyOrder(profile1OnSpecificOrg.getKee(), profile2OnSpecificOrg.getKee()) .doesNotContain(profileOnDefaultOrg.getKee()); }
@Test public void initialize_makes_single_profile_of_a_language_default_even_if_flagged_as_so() { BuiltInQProfileRepository underTest = new BuiltInQProfileRepositoryImpl(dbClient, new Languages(FOO_LANGUAGE), new DummyProfileDefinition("foo", "foo1", true)); underTest.initialize(); assertThat(underTest.get()) .extracting(BuiltInQProfile::getLanguage, BuiltInQProfile::isDefault) .containsExactly(tuple(FOO_LANGUAGE.getKey(), true)); }
@Test public void initialize_does_not_create_Sonar_Way_as_default_if_other_profile_is_defined_as_default() { BuiltInQProfileRepository underTest = new BuiltInQProfileRepositoryImpl( dbClient, new Languages(FOO_LANGUAGE), new DummyProfileDefinition("foo", SONAR_WAY_QP_NAME, false), new DummyProfileDefinition("foo", "goo", true)); underTest.initialize(); assertThat(underTest.get()) .filteredOn(b -> FOO_LANGUAGE.getKey().equals(b.getLanguage())) .filteredOn(BuiltInQProfile::isDefault) .extracting(BuiltInQProfile::getName) .containsExactly("goo"); }
@Test public void show_on_paid_organization() { OrganizationDto organization = db.organizations().insert(); QProfileDto qualityProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); UserDto user = db.users().insertUser(); db.organizations().addMember(organization, user); userSession.logIn(user); ShowResponse result = call(ws.newRequest().setParam(PARAM_KEY, qualityProfile.getKee())); assertThat(result.getProfile()) .extracting(QualityProfile::getKey) .containsExactly(qualityProfile.getKee()); }
@Test public void return_qprofile_on_paid_organization_when_user_is_member() { OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID)); QProfileDto qProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey())); UserDto user = db.users().insertUser(); userSession.logIn(user).addMembership(organization); SearchWsResponse result = call(ws.newRequest().setParam(PARAM_ORGANIZATION, organization.getKey())); assertThat(result.getProfilesList()).extracting(QualityProfile::getKey) .containsExactlyInAnyOrder(qProfile.getKee()); }