private Predicate<QProfileDto> hasLanguagePlugin() { return p -> languages.get(p.getLanguage()) != null; }
@Override public void start() { if (languages.all().length == 0) { throw new IllegalStateException("No language plugins are installed."); } }
@Test public void test_no_languages() { Languages languages = new Languages(); assertThat(languages.get("foo")).isNull(); assertThat(languages.getSuffixes("foo")).isEmpty(); }
@Test public void should_get_suffixes() { Languages languages = new Languages( language("java", "java"), language("php", "php4", "php5")); assertThat(languages.getSuffixes()).containsOnly("java", "php4", "php5"); assertThat(languages.getSuffixes("java")).containsOnly("java"); assertThat(languages.getSuffixes("php")).containsOnly("php4", "php5"); assertThat(languages.getSuffixes("xxx")).isEmpty(); }
public static Languages newLanguages(String... languageKeys) { return new Languages(Collections2.transform(Arrays.asList(languageKeys), new NonNullInputFunction<String, Language>() { @Override protected Language doApply(String languageKey) { return newLanguage(languageKey); } }).toArray(new Language[0])); } }
private Tuple addProfile(Multimap<QProfileName, ActiveRuleChange> profiles, Languages languages, ActiveRuleChange.Type type) { String profileName = randomLowerCaseText(); int ruleId1 = new Random().nextInt(952); int ruleId2 = new Random().nextInt(952); Language language = newLanguage(randomLowerCaseText(), randomLowerCaseText()); languages.add(language); profiles.putAll(new QProfileName(language.getKey(), profileName), asList(new ActiveRuleChange( type, ActiveRuleKey.parse("qp:repo:rule1"), new RuleDefinitionDto().setId(ruleId1)), new ActiveRuleChange(type, ActiveRuleKey.parse("qp:repo:rule2"), new RuleDefinitionDto().setId(ruleId2)))); return tuple(profileName, language.getKey(), language.getName(), 2); }
@Test public void should_not_fail_if_no_language() throws Exception { LanguageDetection detection = spy(new LanguageDetection(settings.asConfig(), new DefaultLanguagesRepository(new Languages()))); assertThat(detectLanguage(detection, "Foo.java")).isNull(); }
private Map<String, Map<String, BuiltInQualityProfile>> validateAndClean(BuiltInQualityProfilesDefinition.Context context) { Map<String, Map<String, BuiltInQualityProfile>> profilesByLanguageAndName = context.profilesByLanguageAndName(); profilesByLanguageAndName.entrySet() .removeIf(entry -> { String language = entry.getKey(); if (languages.get(language) == null) { LOGGER.info("Language {} is not installed, related quality profiles are ignored", language); return true; } return false; }); return profilesByLanguageAndName; }
private void ensureAllLanguagesHaveAtLeastOneBuiltInQP() { Set<String> languagesWithBuiltInQProfiles = qProfiles.stream().map(BuiltInQProfile::getLanguage).collect(Collectors.toSet()); Set<String> languagesWithoutBuiltInQProfiles = Arrays.stream(languages.all()) .map(Language::getKey) .filter(key -> !languagesWithBuiltInQProfiles.contains(key)) .collect(Collectors.toSet()); checkState(languagesWithoutBuiltInQProfiles.isEmpty(), "The following languages have no built-in quality profiles: %s", languagesWithoutBuiltInQProfiles.stream().collect(Collectors.joining())); }
@Test public void get_throws_ISE_if_called_before_initialize() { BuiltInQProfileRepositoryImpl underTest = new BuiltInQProfileRepositoryImpl(mock(DbClient.class), new Languages()); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("initialize must be called first"); underTest.get(); }
public Language getLanguage(QProfileDto profile) { Language language = languages.get(profile.getLanguage()); checkFound(language, "Quality Profile with key '%s' does not exist", profile.getKee()); return language; }
public static List<String> getOrderedLanguageKeys(Languages languages) { Language[] all = languages.all(); return Arrays.stream(all) .map(Language::getKey) .sorted() .collect(MoreCollectors.toList(all.length)); } }
@Test public void initialize_creates_no_BuiltInQProfile_when_all_definitions_apply_to_non_defined_languages() { BuiltInQProfileRepository underTest = new BuiltInQProfileRepositoryImpl(mock(DbClient.class), new Languages(), new DummyProfileDefinition("foo", "P1", false)); underTest.initialize(); assertThat(underTest.get()).isEmpty(); }
/** * Get language. */ @Override @CheckForNull public Language get(String languageKey) { org.sonar.api.resources.Language language = languages.get(languageKey); return language != null ? new Language(language.getKey(), language.getName(), language.getFileSuffixes()) : null; }
public static String getExampleValue(Languages languages) { Language[] languageArray = languages.all(); if (languageArray.length > 0) { return languageArray[0].getKey(); } else { return ""; } }
@Test public void initialize_throws_ISE_if_language_has_no_builtin_qp() { BuiltInQProfileRepository underTest = new BuiltInQProfileRepositoryImpl(mock(DbClient.class), new Languages(FOO_LANGUAGE)); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("The following languages have no built-in quality profiles: foo"); underTest.initialize(); }
private void setLanguageName(Rules.Rule.Builder ruleResponse, RuleDefinitionDto ruleDto, Set<String> fieldsToReturn) { String languageKey = ruleDto.getLanguage(); if (shouldReturnField(fieldsToReturn, FIELD_LANGUAGE_NAME) && languageKey != null) { Language language = languages.get(languageKey); ruleResponse.setLangName(language == null ? languageKey : language.getName()); } }
private Set<String> getLanguageKeys() { return Arrays.stream(languages.all()).map(Language::getKey).collect(MoreCollectors.toSet()); }
@Test public void initialize_throws_ISE_if_called_twice() { BuiltInQProfileRepositoryImpl underTest = new BuiltInQProfileRepositoryImpl(mock(DbClient.class), new Languages()); underTest.initialize(); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("initialize must be called only once"); underTest.initialize(); }