Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,18 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Rule;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.io.TempDir;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.config.internal.MapSettings;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.java.InputFileUtils.addFile;

@EnableRuleMigrationSupport
class BatchGeneratorTest {
@Rule
public TemporaryFolder temp = new TemporaryFolder();
@TempDir
File temp;

@Test
void batch_generator_returns_an_empty_list_when_no_input_files() {
Expand All @@ -48,7 +45,7 @@ void batch_generator_returns_an_empty_list_when_no_input_files() {

@Test
void batch_generator_returns_at_most_one_item_per_batch_when_size_is_zero() throws IOException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(new MapSettings());
List<InputFile> inputFiles = new ArrayList<>();
Expand All @@ -69,7 +66,7 @@ void batch_generator_returns_at_most_one_item_per_batch_when_size_is_zero() thro

@Test
void batch_generator_returns_batches_with_multiple_files_that_are_smaller_than_batch_size() throws IOException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(new MapSettings());
InputFile fileA = addFile(temp, "class A { public void doSomething() {} }", sensorContext);
Expand Down Expand Up @@ -107,7 +104,7 @@ void batch_generator_returns_batches_with_multiple_files_that_are_smaller_than_b

@Test
void batch_generator_includes_file_excluded_from_previous_batch_into_next_batch() throws IOException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(new MapSettings());
InputFile fileA = addFile(temp, "class A { public void doSomething() {} }", sensorContext);
Expand Down
10 changes: 8 additions & 2 deletions java-frontend/src/test/java/org/sonar/java/InputFileUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,20 @@

class InputFileUtils {
public static InputFile addFile(TemporaryFolder temp, String code, SensorContextTester context) throws IOException {
return addFile(temp.getRoot(), code, context);
}

public static InputFile addFile(File tempDir, String code, SensorContextTester context) throws IOException {
Matcher matcher = Pattern.compile("(?:^|\\s)(?:class|interface|enum|record)\\s++(\\w++)").matcher(code);
if (matcher.find()) {
String className = matcher.group(1);
InputFile.Type type = className.endsWith("Test") ? InputFile.Type.TEST : InputFile.Type.MAIN;
File file = temp.newFile(className + ".java").getAbsoluteFile();
File file = new File(tempDir, className + ".java").getAbsoluteFile();
file.createNewFile();
return generateInputFile(code, context, file, type);
} else {
File file = temp.newFile("Unnamed.java").getAbsoluteFile();
File file = new File(tempDir, "Unnamed.java").getAbsoluteFile();
file.createNewFile();
return generateInputFile(code, context, file, InputFile.Type.MAIN);
}
}
Expand Down
27 changes: 12 additions & 15 deletions java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,11 @@
import java.util.List;
import javax.annotation.Nullable;
import org.eclipse.core.runtime.OperationCanceledException;
import org.junit.Rule;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.rules.TemporaryFolder;
import org.slf4j.event.Level;
import org.sonar.api.SonarEdition;
import org.sonar.api.SonarQubeSide;
Expand Down Expand Up @@ -83,7 +81,6 @@
import static org.sonar.java.InputFileUtils.addFile;
import static org.sonar.java.TestUtils.mockSonarComponents;

@EnableRuleMigrationSupport
class JavaFrontendTest {


Expand All @@ -95,8 +92,8 @@ class JavaFrontendTest {
private static final Version LATESTS_SONAR_API_VERSION = Version.create(8, 13);
public static final SonarRuntime SONARQUBE_RUNTIME = SonarRuntimeImpl.forSonarQube(LATESTS_SONAR_API_VERSION, SonarQubeSide.SCANNER, SonarEdition.COMMUNITY);

@Rule
public TemporaryFolder temp = new TemporaryFolder();
@TempDir
public File temp;

@RegisterExtension
public LogTesterJUnit5 logTester = new LogTesterJUnit5().setLevel(Level.DEBUG);
Expand Down Expand Up @@ -211,7 +208,7 @@ public void scanFile(JavaFileScannerContext context) {

var settings = new MapSettings();
if (sensorContext == null) {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(settings);
}
Expand Down Expand Up @@ -239,7 +236,7 @@ void scanning_empty_project_should_be_logged_in_autoscan() {

@Test
void test_scan_logs_when_caching_is_enabled_and_can_skip_unchanged_files() throws ApiMismatchException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -273,7 +270,7 @@ void test_scan_logs_when_caching_is_enabled_and_can_skip_unchanged_files() throw

@Test
void test_scan_logs_when_caching_is_enabled_and_cannot_skip_unchanged_files() throws ApiMismatchException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -307,7 +304,7 @@ void test_scan_logs_when_caching_is_enabled_and_cannot_skip_unchanged_files() th

@Test
void test_scan_logs_when_caching_is_enabled_and_cannot_determine_if_unchanged_files_can_be_skipped() throws ApiMismatchException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -341,7 +338,7 @@ void test_scan_logs_when_caching_is_enabled_and_cannot_determine_if_unchanged_fi

@Test
void test_scan_logs_when_caching_is_disabled_and_can_skip_unchanged_files() throws ApiMismatchException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -374,7 +371,7 @@ void test_scan_logs_when_caching_is_disabled_and_can_skip_unchanged_files() thro

@Test
void test_scan_logs_when_caching_is_disabled_and_cannot_skip_unchanged_files() throws ApiMismatchException {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -407,7 +404,7 @@ void test_scan_logs_when_caching_is_disabled_and_cannot_skip_unchanged_files() t

@Test
void test_scan_logs_when_caching_is_disabled_when_sonar_components_is_null() {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
SensorContextTester sensorContextTester = SensorContextTester.create(baseDir);
sensorContextTester.setSettings(new MapSettings());

Expand Down Expand Up @@ -751,7 +748,7 @@ private List<InputFile> scan(SonarRuntime sonarRuntime, String... codeList) thro

private List<InputFile> scan(MapSettings settings, SonarRuntime sonarRuntime, String... codeList) throws IOException {
if (sensorContext == null) {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(settings);
}
Expand All @@ -768,7 +765,7 @@ private List<InputFile> scan(MapSettings settings, SonarRuntime sonarRuntime, Li

private List<InputFile> scan(MapSettings settings, SonarRuntime sonarRuntime, List<InputFile> inputFiles, @Nullable CheckRegistrar[] checkRegistrars) {
if (sensorContext == null) {
File baseDir = temp.getRoot().getAbsoluteFile();
File baseDir = temp.getAbsoluteFile();
sensorContext = SensorContextTester.create(baseDir);
sensorContext.setSettings(settings);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@
package org.sonar.java.ast.visitors;

import java.io.File;
import java.nio.file.Path;
import java.util.Collection;
import java.util.Collections;
import org.junit.Rule;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.io.TempDir;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.TextPointer;
import org.sonar.api.batch.fs.TextRange;
Expand All @@ -42,17 +41,16 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;

@EnableRuleMigrationSupport
class SonarSymbolTableVisitorTest {

@Rule
public TemporaryFolder temp = new TemporaryFolder();
@TempDir
Path temp;
private SensorContextTester context;
private SonarComponents sonarComponents;

@BeforeEach
void setUp() {
context = SensorContextTester.create(temp.getRoot());
context = SensorContextTester.create(temp.toFile());
sonarComponents = new SonarComponents(mock(FileLinesContextFactory.class), context.fileSystem(),
mock(ClasspathForMain.class), mock(ClasspathForTest.class), mock(CheckFactory.class), mock(ActiveRules.class));
sonarComponents.setSensorContext(context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,13 @@
import com.google.common.io.Files;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.Collections;
import org.junit.Rule;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.junit.rules.TemporaryFolder;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.rule.ActiveRules;
import org.sonar.api.batch.rule.CheckFactory;
Expand All @@ -50,11 +49,10 @@
import static org.mockito.Mockito.verify;
import static org.sonar.java.TestUtils.mockSonarComponents;

@EnableRuleMigrationSupport
class SyntaxHighlighterVisitorTest {

@Rule
public TemporaryFolder temp = new TemporaryFolder();
@TempDir
Path temp;

private SensorContextTester context;
private SonarComponents sonarComponents;
Expand All @@ -63,7 +61,7 @@ class SyntaxHighlighterVisitorTest {

@BeforeEach
void setUp() {
context = SensorContextTester.create(temp.getRoot());
context = SensorContextTester.create(temp.toFile());
sonarComponents = new SonarComponents(mock(FileLinesContextFactory.class), context.fileSystem(),
mock(ClasspathForMain.class), mock(ClasspathForTest.class), mock(CheckFactory.class), mock(ActiveRules.class));
sonarComponents.setSensorContext(context);
Expand All @@ -73,7 +71,7 @@ void setUp() {
@Test
void parse_error() throws Exception {
SensorContextTester spy = spy(context);
File file = temp.newFile().getAbsoluteFile();
File file = java.nio.file.Files.createTempFile(temp, null, null).toFile().getAbsoluteFile();
Files.asCharSink(file, StandardCharsets.UTF_8).write("ParseError");
scan(TestUtils.inputFile(file));
verify(spy, never()).newHighlighting();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@

import com.google.common.io.Files;
import java.io.File;
import java.nio.file.Path;
import java.util.Collections;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.io.TempDir;
import org.sonar.plugins.java.api.semantic.Symbol;
import org.sonar.plugins.java.api.tree.ClassTree;
import org.sonar.plugins.java.api.tree.ExpressionStatementTree;
Expand All @@ -31,11 +31,10 @@

import static org.assertj.core.api.Assertions.assertThat;

@EnableRuleMigrationSupport
class JParserReleasingJarsTest {

@org.junit.Rule
public TemporaryFolder temp = new TemporaryFolder();
@TempDir
Path temp;

private static final String PROJECT_JAR = "src/test/files/other/project.jar";
private static final String SOURCE = "package foo.bar;\n"
Expand Down Expand Up @@ -75,7 +74,7 @@ void jParser_should_resolve_method_with_jar_in_classPath() {
*/
@Test
void should_be_able_to_delete_jar() throws Exception {
File newJar = new File(temp.newFolder(), "project2.jar");
File newJar = temp.resolve("project2.jar").toFile();
Files.copy(new File(PROJECT_JAR), newJar);

assertThat(newJar).exists();
Expand All @@ -90,7 +89,7 @@ void should_be_able_to_delete_jar() throws Exception {
*/
@Test
void jParser_should_release_jar_after_use() throws Exception {
File newJar = new File(temp.newFolder(), "project3.jar");
File newJar = temp.resolve("project3.jar").toFile();
Files.copy(new File(PROJECT_JAR), newJar);

assertThat(newJar).exists();
Expand Down