Search in sources :

Example 6 with OnDiskTestClientInputFile

use of testutils.OnDiskTestClientInputFile in project sonarlint-core by SonarSource.

the class IssueExclusionsRegexpScannerTests method init.

@BeforeEach
void init() {
    MockitoAnnotations.initMocks(this);
    blockPatterns = Arrays.asList(new DoubleRegexpMatcher(Pattern.compile("// SONAR-OFF"), Pattern.compile("// SONAR-ON")), new DoubleRegexpMatcher(Pattern.compile("// FOO-OFF"), Pattern.compile("// FOO-ON")));
    allFilePatterns = Collections.singletonList(Pattern.compile("@SONAR-IGNORE-ALL"));
    javaFile = new SonarLintInputFile(new OnDiskTestClientInputFile(Paths.get("src/Foo.java"), "src/Foo.java", false, StandardCharsets.UTF_8), f -> mock(Metadata.class));
    regexpScanner = new IssueExclusionsRegexpScanner(javaFile, allFilePatterns, blockPatterns);
}
Also used : DoubleRegexpMatcher(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) FileMetadata(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.FileMetadata) Metadata(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.FileMetadata.Metadata) Arrays(java.util.Arrays) Files(java.nio.file.Files) Mock(org.mockito.Mock) UTF_8(java.nio.charset.StandardCharsets.UTF_8) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) IssueExclusionPatternInitializer(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.pattern.IssueExclusionPatternInitializer) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) StandardCharsets(java.nio.charset.StandardCharsets) Test(org.junit.jupiter.api.Test) MockitoAnnotations(org.mockito.MockitoAnnotations) List(java.util.List) Paths(java.nio.file.Paths) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Pattern(java.util.regex.Pattern) DoubleRegexpMatcher(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher) Path(java.nio.file.Path) Collections(java.util.Collections) AssertionsForClassTypes.assertThat(org.assertj.core.api.AssertionsForClassTypes.assertThat) Mockito.mock(org.mockito.Mockito.mock) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 7 with OnDiskTestClientInputFile

use of testutils.OnDiskTestClientInputFile in project sonarlint-core by SonarSource.

the class ModuleInputFileBuilderTests method testCreate_lazy_error.

@Test
void testCreate_lazy_error() throws IOException {
    when(langDetection.language(any(InputFile.class))).thenReturn(Language.JAVA);
    ClientInputFile file = new OnDiskTestClientInputFile(Paths.get("INVALID"), "INVALID", true, StandardCharsets.ISO_8859_1);
    var builder = new ModuleInputFileBuilder(langDetection, metadata);
    var slFile = builder.create(file);
    // Call any method that will trigger metadata initialization
    var thrown = assertThrows(IllegalStateException.class, () -> slFile.selectLine(1));
    assertThat(thrown).hasMessageStartingWith("Failed to open a stream on file");
}
Also used : OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) InputFile(org.sonar.api.batch.fs.InputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Test(org.junit.jupiter.api.Test)

Example 8 with OnDiskTestClientInputFile

use of testutils.OnDiskTestClientInputFile in project sonarlint-core by SonarSource.

the class ModuleInputFileBuilderTests method testCreateWithLanguageSet.

@Test
void testCreateWithLanguageSet() throws IOException {
    var path = tempDir.resolve("file");
    Files.write(path, "test".getBytes(StandardCharsets.ISO_8859_1));
    ClientInputFile file = new OnDiskTestClientInputFile(path, "file", true, StandardCharsets.ISO_8859_1, Language.CPP);
    var builder = new ModuleInputFileBuilder(langDetection, metadata);
    var inputFile = builder.create(file);
    assertThat(inputFile.language()).isEqualTo("cpp");
    verifyNoInteractions(langDetection);
}
Also used : OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Test(org.junit.jupiter.api.Test)

Example 9 with OnDiskTestClientInputFile

use of testutils.OnDiskTestClientInputFile in project sonarlint-core by SonarSource.

the class ModuleInputFileBuilderTests method testCreate.

@Test
void testCreate() throws IOException {
    when(langDetection.language(any(InputFile.class))).thenReturn(Language.JAVA);
    var path = tempDir.resolve("file");
    Files.write(path, "test".getBytes(StandardCharsets.ISO_8859_1));
    ClientInputFile file = new OnDiskTestClientInputFile(path, "file", true, StandardCharsets.ISO_8859_1);
    var builder = new ModuleInputFileBuilder(langDetection, metadata);
    var inputFile = builder.create(file);
    assertThat(inputFile.type()).isEqualTo(InputFile.Type.TEST);
    assertThat(inputFile.file()).isEqualTo(path.toFile());
    assertThat(inputFile.absolutePath()).isEqualTo(FileUtils.toSonarQubePath(path.toString()));
    assertThat(inputFile.language()).isEqualTo("java");
    assertThat(inputFile.key()).isEqualTo(path.toUri().toString());
    assertThat(inputFile.lines()).isEqualTo(1);
}
Also used : OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) InputFile(org.sonar.api.batch.fs.InputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Test(org.junit.jupiter.api.Test)

Example 10 with OnDiskTestClientInputFile

use of testutils.OnDiskTestClientInputFile in project sonarlint-core by SonarSource.

the class InputFileBuilderTests method testCreate_lazy_error.

@Test
void testCreate_lazy_error() throws IOException {
    when(langDetection.language(any(InputFile.class))).thenReturn(Language.JAVA);
    ClientInputFile file = new OnDiskTestClientInputFile(Paths.get("INVALID"), "INVALID", true, StandardCharsets.ISO_8859_1);
    var builder = new InputFileBuilder(langDetection, metadata, issueExclusionsLoader);
    var slFile = builder.create(file);
    // Call any method that will trigger metadata initialization
    var thrown = assertThrows(IllegalStateException.class, () -> slFile.selectLine(1));
    assertThat(thrown).hasMessageStartingWith("Failed to open a stream on file");
}
Also used : OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) InputFile(org.sonar.api.batch.fs.InputFile) ClientInputFile(org.sonarsource.sonarlint.core.analysis.api.ClientInputFile) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Test(org.junit.jupiter.api.Test)

Aggregations

Test (org.junit.jupiter.api.Test)14 OnDiskTestClientInputFile (testutils.OnDiskTestClientInputFile)14 ClientInputFile (org.sonarsource.sonarlint.core.analysis.api.ClientInputFile)9 ClientModuleInfo (org.sonarsource.sonarlint.core.analysis.api.ClientModuleInfo)5 ComponentContainer (org.sonarsource.sonarlint.core.plugin.commons.pico.ComponentContainer)5 InputFile (org.sonar.api.batch.fs.InputFile)4 SonarLintInputFile (org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile)3 File (java.io.File)2 IOException (java.io.IOException)2 StandardCharsets (java.nio.charset.StandardCharsets)2 Files (java.nio.file.Files)2 Path (java.nio.file.Path)2 Paths (java.nio.file.Paths)2 ArrayList (java.util.ArrayList)2 Collections (java.util.Collections)2 List (java.util.List)2 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)2 BeforeEach (org.junit.jupiter.api.BeforeEach)2 Issue (org.sonarsource.sonarlint.core.client.api.common.analysis.Issue)2 BufferedReader (java.io.BufferedReader)1