use of org.sonarsource.sonarlint.core.analysis.api.ClientModuleInfo in project sonarlint-core by SonarSource.
the class AnalysisEngineMediumTests method should_analyze_a_file_inside_a_module.
@Test
void should_analyze_a_file_inside_a_module(@TempDir Path baseDir) throws Exception {
var content = "def foo():\n" + " x = 9; # trailing comment\n";
ClientInputFile inputFile = preparePythonInputFile(baseDir, content);
AnalysisConfiguration analysisConfig = AnalysisConfiguration.builder().addInputFiles(inputFile).addActiveRules(trailingCommentRule()).setBaseDir(baseDir).build();
List<Issue> issues = new ArrayList<>();
analysisEngine.post(new RegisterModuleCommand(new ClientModuleInfo("moduleKey", aModuleFileSystem())), progressMonitor).get();
analysisEngine.post(new AnalyzeCommand("moduleKey", analysisConfig, issues::add, null), progressMonitor).get();
assertThat(issues).extracting("ruleKey", "message", "inputFile", "flows", "quickFixes", "textRange.startLine", "textRange.startLineOffset", "textRange.endLine", "textRange.endLineOffset").containsOnly(tuple("python:S139", "Move this trailing comment on the previous empty line.", inputFile, List.of(), List.of(), 2, 9, 2, 27));
}
use of org.sonarsource.sonarlint.core.analysis.api.ClientModuleInfo in project sonarlint-core by SonarSource.
the class AnalysisEngineMediumTests method should_cancel_pending_commands_when_stopping.
@Test
void should_cancel_pending_commands_when_stopping() {
var futureLongCommand = analysisEngine.post((moduleRegistry, progressMonitor) -> {
while (!engineStopped) ;
return null;
}, progressMonitor);
var futureRegister = analysisEngine.post(new RegisterModuleCommand(new ClientModuleInfo("moduleKey", aModuleFileSystem())), progressMonitor);
// let the engine run the first command
pause(500);
analysisEngine.stop();
engineStopped = true;
await().until(futureLongCommand::isDone);
assertThat(futureRegister).isCancelled();
}
Aggregations