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); }
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;"); }
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 }); }
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 }); }
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 }); }
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 }); }
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); }
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); }