Beispiel #1
0
            public static void SingleDocumentCodeFixOnly()
            {
                var before = @"
namespace N
{
    using System;

    public class C
    {
        public event EventHandler ↓Bar;
    }
}";

                var after = @"
namespace N
{
    using System;

    public class C
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.CreateFromCodeWithErrorsIndicated("CS0067", before, out before);
                var fix = new RemoveUnusedFix();

                RoslynAssert.FixAll(fix, expectedDiagnostic, before, after);
            }
Beispiel #2
0
            public static void SingleDocumentCodeFixOnly()
            {
                var before = @"
namespace N
{
    using System;

    public class C
    {
        public event EventHandler ↓Bar;
    }
}";

                var after = @"
namespace N
{
    using System;

    public class C
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var fix = new RemoveUnusedFix();

                RoslynAssert.CodeFix(fix, expectedDiagnostic, before, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before }, new[] { after });
                RoslynAssert.CodeFix(fix, expectedDiagnostic, before, after, fixTitle: "Remove public event EventHandler Bar;");
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before }, after, fixTitle: "Remove public event EventHandler Bar;");
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before }, new[] { after }, fixTitle: "Remove public event EventHandler Bar;");
            }
Beispiel #3
0
            public static void TwoDocumentsTwoErrorsTwoFixes()
            {
                var before1 = @"
namespace N
{
    using System;

    public class C1
    {
        public event EventHandler ↓Bar;
    }
}";

                var before2 = @"
namespace N
{
    using System;

    public class C2
    {
        public event EventHandler ↓Bar;
    }
}";

                var fixed1 = @"
namespace N
{
    using System;

    public class C1
    {
    }
}";

                var fixed2             = @"
namespace N
{
    using System;

    public class C2
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var fix = new RemoveUnusedFix();

                RoslynAssert.FixAll(fix, expectedDiagnostic, new[] { before1, before2 }, new[] { fixed1, fixed2 });
                RoslynAssert.FixAll(fix, expectedDiagnostic, new[] { before2, before1 }, new[] { fixed2, fixed1 });
            }
Beispiel #4
0
            public static void TwoDocumentsDifferentProjectsInheritingCodeFixOnly()
            {
                var before1 = @"
namespace N.Core
{
    using System;

    public class C1
    {
        public event EventHandler ↓Bar;
    }
}";

                var before2 = @"
namespace N.Client
{
    public class C2 : N.Core.C1
    {
    }
}";

                var after = @"
namespace N.Core
{
    using System;

    public class C1
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var fix = new RemoveUnusedFix();

                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, new[] { after, before2 });
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, new[] { after, before2 });

                expectedDiagnostic = ExpectedDiagnostic.CreateFromCodeWithErrorsIndicated("CS0067", before1, out before1);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, new[] { after, before2 });
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, new[] { after, before2 });
            }
Beispiel #5
0
            public static void PartialTwoDocumentsCodeFixOnly()
            {
                var before = @"
namespace N
{
    using System;

    public partial class C
    {
        public event EventHandler ↓Bar;
    }
}";

                var part2 = @"
namespace N
{
    public partial class C
    {
    }
}";

                var after = @"
namespace N
{
    using System;

    public partial class C
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var fix = new RemoveUnusedFix();

                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { part2, before }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { part2, before }, new[] { after, part2 });
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, new[] { part2, after });
            }
Beispiel #6
0
            public static void TwoDocumentsCodeFixOnly()
            {
                var before1 = @"
namespace N
{
    using System;

    public class C1
    {
        public event EventHandler ↓Bar;
    }
}";

                var before2 = @"
namespace N
{
    public class C2
    {
    }
}";

                var after = @"
namespace N
{
    using System;

    public class C1
    {
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var fix = new RemoveUnusedFix();

                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before2, before1 }, new[] { after, before2 });
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, after);
                RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before1, before2 }, new[] { after, before2 });
            }
Beispiel #7
0
            public static void PartialTwoDocumentsFixOnlyWrongPosition()
            {
                var before = @"
namespace N
{
    public partial class ↓C
    {
        public event EventHandler Bar;
    }
}";

                var part2 = @"
namespace N
{
    public partial class C
    {
    }
}";

                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var expected           = "Expected and actual diagnostics do not match.\r\n" +
                                         "Expected:\r\n" +
                                         "  CS0067 \r\n" +
                                         "    at line 3 and character 25 in file Unknown | public partial class ↓C\r\n" +
                                         "Actual:\r\n" +
                                         "  CS0246 The type or namespace name 'EventHandler' could not be found (are you missing a using directive or an assembly reference?)\r\n" +
                                         "    at line 5 and character 21 in file Unknown | public event ↓EventHandler Bar;\r\n" +
                                         "  CS0067 The event 'C.Bar' is never used\r\n" +
                                         "    at line 5 and character 34 in file Unknown | public event EventHandler ↓Bar;\r\n";
                var fix       = new RemoveUnusedFix();
                var exception = Assert.Throws <AssertException>(() => RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, string.Empty));

                CodeAssert.AreEqual(expected, exception.Message);

                exception = Assert.Throws <AssertException>(() => RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, Array.Empty <string>()));
                CodeAssert.AreEqual(expected, exception.Message);
            }
Beispiel #8
0
            public static void PartialTwoDocumentsFixOnly()
            {
                var before = @"
namespace N
{
    using System;

    public partial class C
    {
        public event EventHandler ↓Bar;
    }
}";

                var part2 = @"
namespace N
{
    public partial class C
    {
    }
}";

                var after = @"
namespace N
{
    using System;

    public partial class C
    {
        // mismatch
    }
}";
                var expectedDiagnostic = ExpectedDiagnostic.Create("CS0067");
                var expected           = "Mismatch on line 8.\r\n" +
                                         "Expected:         // mismatch\r\n" +
                                         "Actual:       }\r\n" +
                                         "              ^\r\n" +
                                         "Expected:\r\n" +
                                         "\r\n" +
                                         "namespace N\r\n" +
                                         "{\r\n" +
                                         "    using System;\r\n" +
                                         "\r\n" +
                                         "    public partial class C\r\n" +
                                         "    {\r\n" +
                                         "        // mismatch\r\n" +
                                         "    }\r\n" +
                                         "}\r\n" +
                                         "Actual:\r\n" +
                                         "\r\n" +
                                         "namespace N\r\n" +
                                         "{\r\n" +
                                         "    using System;\r\n" +
                                         "\r\n" +
                                         "    public partial class C\r\n" +
                                         "    {\r\n" +
                                         "    }\r\n" +
                                         "}\r\n";
                var fix       = new RemoveUnusedFix();
                var exception = Assert.Throws <AssertException>(() => RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, after));

                CodeAssert.AreEqual(expected, exception.Message);
                exception = Assert.Throws <AssertException>(() => RoslynAssert.CodeFix(fix, expectedDiagnostic, new[] { before, part2 }, new[] { after, part2 }));
                CodeAssert.AreEqual(expected, exception.Message);
            }