public async void AddMessageAsync_WhenNoProjectsWithIntellisense_ReturnsNotHandled() { var provider = CreateInstance(); var task = new TargetGeneratedTask(); task.BuildEventArgs = new BuildErrorEventArgs(null, "Code", "File", 1, 1, 1, 1, "Message", "HelpKeyword", "Sender"); var result = await provider.AddMessageAsync(task); Assert.Equal(result, AddMessageResult.NotHandled); }
public async void AddMessageAsync_NullAsTaskBuildEventArgs_ReturnsNotHandled() { var provider = CreateInstance(); var task = new TargetGeneratedTask(); task.BuildEventArgs = null; var result = await provider.AddMessageAsync(task); Assert.Equal(result, AddMessageResult.NotHandled); }
public async void AddMessageAsync_UnrecognizedArgsAsTaskBuildEventArgs_ReturnsNotHandled() { var provider = CreateInstance(); var task = new TargetGeneratedTask(); task.BuildEventArgs = new LazyFormattedBuildEventArgs("Message", "HelpKeyword", "SenderName"); var result = await provider.AddMessageAsync(task); Assert.Equal(result, AddMessageResult.NotHandled); }
private async Task <AddMessageResult> AddMessageAsyncCore(TargetGeneratedTask task) { // We only want to pass compiler, analyzers, etc to the language // service, so we skip tasks that do not have a code ErrorListDetails details; if (!TryExtractErrorListDetails(task.BuildEventArgs, out details) || string.IsNullOrEmpty(details.Code)) { return(await NotHandled.ConfigureAwait(false)); } InitializeBuildErrorReporter(); bool handled = false; if (_languageServiceBuildErrorReporter != null) { try { _languageServiceBuildErrorReporter.ReportError2(details.Message, details.Code, details.Priority, details.LineNumberForErrorList, details.ColumnNumberForErrorList, details.EndLineNumberForErrorList, details.EndColumnNumberForErrorList, details.FileFullPath); handled = true; } catch (NotImplementedException) { // Language Service doesn't handle it, typically because file // isn't in the project or because it doesn't have line/column } } return(handled ? await HandledAndStopProcessing.ConfigureAwait(false) : await NotHandled.ConfigureAwait(false)); }
public Task <AddMessageResult> AddMessageAsync(TargetGeneratedTask task) { Requires.NotNull(task, nameof(task)); return(AddMessageAsyncCore(task)); }