diff options
Diffstat (limited to 'sonar-scanner-engine/src/testFixtures/java')
4 files changed, 64 insertions, 6 deletions
diff --git a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/AnalysisResult.java b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/AnalysisResult.java index f29a377e38f..57843c8abd7 100644 --- a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/AnalysisResult.java +++ b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/AnalysisResult.java @@ -199,8 +199,8 @@ public class AnalysisResult implements AnalysisObserver { return readFromReport(ScannerReportReader::readAdHocRules); } - public List<ScannerReport.Dependency> dependencies() { - return readFromReport(ScannerReportReader::readDependencies); + public List<ScannerReport.AnalysisData> analysisData() { + return readFromReport(ScannerReportReader::readAnalysisData); } @NotNull diff --git a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakeFeatureFlagsLoader.java b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakeFeatureFlagsLoader.java new file mode 100644 index 00000000000..26856c3b98e --- /dev/null +++ b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakeFeatureFlagsLoader.java @@ -0,0 +1,41 @@ +/* + * SonarQube + * Copyright (C) 2009-2025 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.scanner.mediumtest; + +import jakarta.annotation.Priority; +import java.util.HashSet; +import java.util.Set; +import org.sonar.scanner.repository.featureflags.FeatureFlagsLoader; + +@Priority(1) +public class FakeFeatureFlagsLoader implements FeatureFlagsLoader { + + private final Set<String> features = new HashSet<>(); + + @Override + public Set<String> load() { + return features; + } + + public void enableFeature(String featureName) { + features.add(featureName); + } + +} diff --git a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakePluginInstaller.java b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakePluginInstaller.java index 60a8348f778..5934c9da0bc 100644 --- a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakePluginInstaller.java +++ b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakePluginInstaller.java @@ -19,13 +19,13 @@ */ package org.sonar.scanner.mediumtest; +import jakarta.annotation.Priority; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import jakarta.annotation.Priority; import org.sonar.api.Plugin; import org.sonar.core.platform.PluginInfo; import org.sonar.core.plugin.PluginType; @@ -49,6 +49,11 @@ public class FakePluginInstaller implements PluginInstaller { return this; } + public FakePluginInstaller add(PluginInfo pluginInfo, Plugin instance) { + mediumTestPlugins.add(new LocalPlugin(pluginInfo, instance, Set.of())); + return this; + } + public FakePluginInstaller addOptional(String pluginKey, Set<String> requiredForLanguages, Plugin instance) { optionalMediumTestPlugins.add(new LocalPlugin(pluginKey, instance, requiredForLanguages)); return this; diff --git a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java index 1cdd295a82d..f2edfe609d4 100644 --- a/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java +++ b/sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java @@ -19,6 +19,9 @@ */ package org.sonar.scanner.mediumtest; +import static java.util.Collections.emptySet; + +import jakarta.annotation.Priority; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -38,7 +41,6 @@ import java.util.Properties; import java.util.Set; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import jakarta.annotation.Priority; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; @@ -60,6 +62,7 @@ import org.sonar.api.utils.Version; import org.sonar.batch.bootstrapper.Batch; import org.sonar.batch.bootstrapper.EnvironmentInformation; import org.sonar.batch.bootstrapper.LogOutput; +import org.sonar.core.platform.PluginInfo; import org.sonar.scanner.bootstrap.GlobalAnalysisMode; import org.sonar.scanner.cache.AnalysisCacheLoader; import org.sonar.scanner.protocol.internal.SensorCacheData; @@ -86,8 +89,6 @@ import org.sonarqube.ws.NewCodePeriods; import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile; import org.sonarqube.ws.Rules.Rule; -import static java.util.Collections.emptySet; - /** * Main utility class for writing scanner medium tests. */ @@ -111,6 +112,7 @@ public class ScannerMediumTester extends ExternalResource implements BeforeTestE private final CeTaskReportDataHolder reportMetadataHolder = new CeTaskReportDataHolderExt(); private final FakeLanguagesLoader languagesLoader = new FakeLanguagesLoader(); private final FakeLanguagesProvider languagesProvider = new FakeLanguagesProvider(); + private final FakeFeatureFlagsLoader featureFlagsLoader = new FakeFeatureFlagsLoader(); private LogOutput logOutput = null; private static void createWorkingDirs() throws IOException { @@ -145,6 +147,11 @@ public class ScannerMediumTester extends ExternalResource implements BeforeTestE return this; } + public ScannerMediumTester registerPlugin(PluginInfo pluginInfo, Plugin instance) { + pluginInstaller.add(pluginInfo, instance); + return this; + } + public ScannerMediumTester registerOptionalPlugin(String pluginKey, Set<String> requiredForLanguages, Plugin instance) { pluginInstaller.addOptional(pluginKey, requiredForLanguages, instance); return this; @@ -310,6 +317,10 @@ public class ScannerMediumTester extends ExternalResource implements BeforeTestE languagesProvider.addLanguage(key, name, publishAllFiles); } + public void enableFeature(String featureName) { + featureFlagsLoader.enableFeature(featureName); + } + public static class AnalysisBuilder { private final Map<String, String> taskProperties = new HashMap<>(); private final ScannerMediumTester tester; @@ -343,6 +354,7 @@ public class ScannerMediumTester extends ExternalResource implements BeforeTestE tester.reportMetadataHolder, tester.languagesLoader, tester.languagesProvider, + tester.featureFlagsLoader, result); if (tester.logOutput != null) { builder.setLogOutput(tester.logOutput); |