@VisibleForTesting void execute(Logger logger) { String defaultName = config.get(QualityProfiles.SONAR_PROFILE_PROP).orElse(null); boolean defaultNameUsed = StringUtils.isBlank(defaultName); for (String lang : store.languages()) { QProfile profile = profiles.findByLanguage(lang); if (profile == null) { logger.warn("No Quality profile found for language {}", lang); } else { logger.info("Quality profile for {}: {}", lang, profile.getName()); if (isNotEmpty(defaultName) && defaultName.equals(profile.getName())) { defaultNameUsed = true; } } } if (!defaultNameUsed && !store.languages().isEmpty()) { throw MessageException.of("sonar.profile was set to '" + defaultName + "' but didn't match any profile for any language. Please check your configuration."); } } }
private static QualityProfiles mockProfiles(String... keys) { List<QualityProfile> profiles = new LinkedList<>(); for (String k : keys) { QualityProfile p = QualityProfile.newBuilder().setKey(k).setLanguage(k).setRulesUpdatedAt(DateUtils.formatDateTime(new Date())).build(); profiles.add(p); } return new QualityProfiles(profiles); }
public QualityProfiles provide(QualityProfileLoader loader, ProjectRepositories projectRepositories, ScannerProperties props) { if (this.profiles == null) { List<QualityProfile> profileList; Profiler profiler = Profiler.create(LOG).startInfo(LOG_MSG); if (!projectRepositories.exists()) { profileList = loader.loadDefault(getSonarProfile(props)); } else { profileList = loader.load(props.getKeyWithBranch(), getSonarProfile(props)); } profiler.stopInfo(); profiles = new QualityProfiles(profileList); } return profiles; }
private void assertResponse(QualityProfiles qps) { assertThat(qps.findAll()).extracting("key").containsExactly("profile"); } }
public QualityProfiles provide(QualityProfileLoader loader, ProjectRepositories projectRepositories, ScannerProperties props) { if (this.profiles == null) { List<QualityProfile> profileList; Profiler profiler = Profiler.create(LOG).startInfo(LOG_MSG); if (!projectRepositories.exists()) { profileList = loader.loadDefault(getSonarProfile(props)); } else { profileList = loader.load(props.getKeyWithBranch(), getSonarProfile(props)); } profiler.stopInfo(); profiles = new QualityProfiles(profileList); } return profiles; }
@Before public void before() throws Exception { store = new InputComponentStore(mock(BranchConfiguration.class)); profiles = mock(QualityProfiles.class); QProfile javaProfile = new QProfile("p1", "My Java profile", "java", null); when(profiles.findByLanguage("java")).thenReturn(javaProfile); QProfile cobolProfile = new QProfile("p2", "My Cobol profile", "cobol", null); when(profiles.findByLanguage("cobol")).thenReturn(cobolProfile); }
for (QProfile qp : qProfiles.findAll()) { builder.putQprofilesPerLanguage(qp.getLanguage(), ScannerReport.Metadata.QProfile.newBuilder() .setKey(qp.getKey())
@VisibleForTesting void execute(Logger logger) { String defaultName = config.get(QualityProfiles.SONAR_PROFILE_PROP).orElse(null); boolean defaultNameUsed = StringUtils.isBlank(defaultName); for (String lang : store.languages()) { QProfile profile = profiles.findByLanguage(lang); if (profile == null) { logger.warn("No Quality profile found for language {}", lang); } else { logger.info("Quality profile for {}: {}", lang, profile.getName()); if (isNotEmpty(defaultName) && defaultName.equals(profile.getName())) { defaultNameUsed = true; } } } if (!defaultNameUsed && !store.languages().isEmpty()) { throw MessageException.of("sonar.profile was set to '" + defaultName + "' but didn't match any profile for any language. Please check your configuration."); } } }
@Test public void write_metadata() throws Exception { Date date = new Date(); when(qProfiles.findAll()).thenReturn(asList(new QProfile("q1", "Q1", "java", date))); when(pluginRepository.getPluginsByKey()).thenReturn(ImmutableMap.of( "java", new ScannerPlugin("java", 12345L, null), "php", new ScannerPlugin("php", 45678L, null))); File outputDir = temp.newFolder(); ScannerReportWriter writer = new ScannerReportWriter(outputDir); underTest.publish(writer); ScannerReportReader reader = new ScannerReportReader(outputDir); ScannerReport.Metadata metadata = reader.readMetadata(); assertThat(metadata.getAnalysisDate()).isEqualTo(1234567L); assertThat(metadata.getProjectKey()).isEqualTo("root"); assertThat(metadata.getModulesProjectRelativePathByKeyMap()).containsOnly(entry("module", "modulePath"), entry("root", "")); assertThat(metadata.getQprofilesPerLanguageMap()).containsOnly(entry("java", org.sonar.scanner.protocol.output.ScannerReport.Metadata.QProfile.newBuilder() .setKey("q1") .setName("Q1") .setLanguage("java") .setRulesUpdatedAt(date.getTime()) .build())); assertThat(metadata.getPluginsByKey()).containsOnly(entry("java", org.sonar.scanner.protocol.output.ScannerReport.Metadata.Plugin.newBuilder() .setKey("java") .setUpdatedAt(12345) .build()), entry("php", org.sonar.scanner.protocol.output.ScannerReport.Metadata.Plugin.newBuilder() .setKey("php") .setUpdatedAt(45678) .build())); }
for (QProfile qp : qProfiles.findAll()) { builder.putQprofilesPerLanguage(qp.getLanguage(), ScannerReport.Metadata.QProfile.newBuilder() .setKey(qp.getKey())