private static void VerifyDiagnosticLocation(DiagnosticAnalyzer analyzer, Diagnostic diagnostic, Location actual, DiagnosticResultLocation expected) { var actualSpan = actual.GetLineSpan(); Assert.True(actualSpan.Path == expected.Path || (actualSpan.Path != null && actualSpan.Path.Contains("Test0.") && expected.Path.Contains("Test.")), string.Format("Expected diagnostic to be in file \"{0}\" was actually in file \"{1}\"\r\n\r\nDiagnostic:\r\n {2}\r\n", expected.Path, actualSpan.Path, FormatDiagnostics(analyzer, diagnostic))); var actualLinePosition = actualSpan.StartLinePosition; // Only check line position if there is an actual line in the real diagnostic if (actualLinePosition.Line > 0) { if (actualLinePosition.Line + 1 != expected.Line) { Assert.True(false, string.Format("Expected diagnostic to be on line \"{0}\" was actually on line \"{1}\"\r\n\r\nDiagnostic:\r\n {2}\r\n", expected.Line, actualLinePosition.Line + 1, FormatDiagnostics(analyzer, diagnostic))); } } // Only check column position if there is an actual column position in the real diagnostic if (actualLinePosition.Character > 0) { if (actualLinePosition.Character + 1 != expected.Column) { Assert.True(false, string.Format("Expected diagnostic to start at column \"{0}\" was actually at column \"{1}\"\r\n\r\nDiagnostic:\r\n {2}\r\n", expected.Column, actualLinePosition.Character + 1, FormatDiagnostics(analyzer, diagnostic))); } } }
protected static DiagnosticResult GetResultAt(string path, int line, int column, DiagnosticDescriptor rule, params object[] messageArguments) { var location = new DiagnosticResultLocation(path, line, column); return(new DiagnosticResult { Locations = new[] { location }, Id = rule.Id, Severity = rule.DefaultSeverity, Message = string.Format(rule.MessageFormat.ToString(), messageArguments) }); }
protected static DiagnosticResult GetResultAt(string path, int line, int column, string id, string message) { var location = new DiagnosticResultLocation(path, line, column); return(new DiagnosticResult { Locations = new[] { location }, Id = id, Severity = DiagnosticSeverity.Warning, Message = message }); }
protected static DiagnosticResult GetResultAt(string path, int line, int column, string id, string message) { var location = new DiagnosticResultLocation(path, line, column); return new DiagnosticResult { Locations = new[] { location }, Id = id, Severity = DiagnosticSeverity.Warning, Message = message }; }
protected static DiagnosticResult GetCSharpResultAt(int line, int column, string name, string message) { var location = new DiagnosticResultLocation(CSharpDefaultFilePath, line, column); return new DiagnosticResult { Locations = new[] { location }, Id = name, Severity = DiagnosticSeverity.Warning, Message = message }; }
protected static DiagnosticResult GetCSharpResultAt(int line, int column, string name, string message) { var location = new DiagnosticResultLocation(CSharpDefaultFilePath, line, column); return(new DiagnosticResult { Locations = new[] { location }, Id = name, Severity = DiagnosticSeverity.Warning, Message = message }); }
protected static DiagnosticResult GetResultAt(string path, int line, int column, DiagnosticDescriptor rule, params object[] messageArguments) { var location = new DiagnosticResultLocation(path, line, column); return new DiagnosticResult { Locations = new[] { location }, Id = rule.Id, Severity = rule.DefaultSeverity, Message = string.Format(rule.MessageFormat.ToString(), messageArguments) }; }