aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine/src/testFixtures/java
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-scanner-engine/src/testFixtures/java')
-rw-r--r--sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/AnalysisResult.java4
-rw-r--r--sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakeFeatureFlagsLoader.java41
-rw-r--r--sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/FakePluginInstaller.java7
-rw-r--r--sonar-scanner-engine/src/testFixtures/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java18
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);