Ejemplo n.º 1
0
        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);
            }
        }