Search in sources :

Example 6 with ClientInputFile

use of org.sonarsource.sonarlint.core.analysis.api.ClientInputFile 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 7 with ClientInputFile

use of org.sonarsource.sonarlint.core.analysis.api.ClientInputFile 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 8 with ClientInputFile

use of org.sonarsource.sonarlint.core.analysis.api.ClientInputFile 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 9 with ClientInputFile

use of org.sonarsource.sonarlint.core.analysis.api.ClientInputFile 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)

Example 10 with ClientInputFile

use of org.sonarsource.sonarlint.core.analysis.api.ClientInputFile in project sonarlint-core by SonarSource.

the class InputFileBuilderTests 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 InputFileBuilder(langDetection, metadata, issueExclusionsLoader);
    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);
    assertThat(builder.langDetection()).isEqualTo(langDetection);
    verify(issueExclusionsLoader).createCharHandlerFor(inputFile);
}
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

ClientInputFile (org.sonarsource.sonarlint.core.analysis.api.ClientInputFile)17 Test (org.junit.jupiter.api.Test)16 OnDiskTestClientInputFile (testutils.OnDiskTestClientInputFile)14 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 InputFile (org.sonar.api.batch.fs.InputFile)4 InMemoryTestClientInputFile (testutils.InMemoryTestClientInputFile)4 File (java.io.File)3 Map (java.util.Map)3 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)3 RuleKey (org.sonarsource.sonarlint.core.client.api.common.RuleKey)3 Issue (org.sonarsource.sonarlint.core.client.api.common.analysis.Issue)3 IOException (java.io.IOException)2 Charset (java.nio.charset.Charset)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 Collection (java.util.Collection)2 Collections (java.util.Collections)2