public async void FindsError_ForNameExpressions(string dataNameExpression) { TestFileMarkupParser.GetPositionsAndSpans(dataNameExpression, out var parsedDataNameExpression, out _, out _); var dataNameExpressionLength = parsedDataNameExpression.Length; await new Verify.Test { TestState = { Sources = { "public class TestClass {" + " const string DataNameConst = \"Data\";" + " const string DataNameofConst = nameof(Data);" + " private static System.Collections.Generic.IEnumerable<object[]> Data = null;" + " [Xunit.MemberData(" + dataNameExpression + ")] public void TestMethod() { }" + "}", "public static class OtherClass { public const string Data = \"Data\"; }", }, }, ExpectedDiagnostics = { Verify.Diagnostic("xUnit1016").WithSpan(1, 193, 1, 211 + dataNameExpressionLength).WithSeverity(DiagnosticSeverity.Error), }, }.RunAsync(); }
protected void Test(string expected, string markupCode, bool completionActive = false, bool assertNextHandlerInvoked = false) { TestFileMarkupParser.GetPositionsAndSpans(markupCode, out var code, out var positions, out _); Assert.NotEmpty(positions); foreach (var position in positions) { // Run the test once for each input position. All marked positions in the input for a test are expected // to have the same result. Test(expected, code, position, completionActive, assertNextHandlerInvoked); } }