提交 39d2b7a0 编写于 作者: C Cyrus Najmabadi

Update tests

上级 563ba3a9
......@@ -970,12 +970,12 @@ class C$$
state.EditorOperations.InsertText("at");
await state.AssertTag("C", "Cat");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
state.SendEscape();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1139,15 +1139,15 @@ void M()
state.EditorOperations.InsertText("va");
await state.AssertTag("C", "va");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
state.EditorOperations.InsertText("r");
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
state.EditorOperations.InsertText("p");
await state.AssertTag("C", "varp");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1166,7 +1166,7 @@ void M()
using var state = RenameTrackingTestState.Create(code, LanguageNames.CSharp);
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1185,7 +1185,7 @@ End Sub
state.EditorOperations.InsertText("var");
await state.AssertTag("C", "var");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1206,15 +1206,15 @@ void M()
state.EditorOperations.InsertText("dynami");
await state.AssertTag("C", "dynami");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
state.EditorOperations.InsertText("c");
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
state.EditorOperations.InsertText("s");
await state.AssertTag("C", "dynamics");
Assert.NotEmpty(await state.GetDocumentDiagnosticsAsync());
Assert.NotNull(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1234,7 +1234,7 @@ void M()
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1253,7 +1253,7 @@ End Class
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1274,7 +1274,7 @@ void M()
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......@@ -1293,7 +1293,7 @@ End Class
state.EditorOperations.Backspace();
state.EditorOperations.Backspace();
await state.AssertNoTag();
Assert.Empty(await state.GetDocumentDiagnosticsAsync());
Assert.Null(await state.TryGetDocumentDiagnosticAsync());
}
[WpfFact]
......
......@@ -9,6 +9,7 @@
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CodeActions;
using Microsoft.CodeAnalysis.CodeFixes;
using Microsoft.CodeAnalysis.CodeRefactorings;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.Editor.CSharp.RenameTracking;
using Microsoft.CodeAnalysis.Editor.Implementation.RenameTracking;
......@@ -50,7 +51,7 @@ internal sealed class RenameTrackingTestState : IDisposable
private readonly MockRefactorNotifyService _mockRefactorNotifyService;
public MockRefactorNotifyService RefactorNotifyService { get { return _mockRefactorNotifyService; } }
private readonly CodeFixProvider _codeFixProvider;
private readonly RenameTrackingCodeRefactoringProvider _codeRefactoringProvider;
private readonly RenameTrackingCancellationCommandHandler _commandHandler = new RenameTrackingCancellationCommandHandler();
public static RenameTrackingTestState Create(
......@@ -111,15 +112,10 @@ internal sealed class RenameTrackingTestState : IDisposable
_tagger = tracker.CreateTagger<RenameTrackingTag>(_hostDocument.GetTextBuffer());
if (languageName == LanguageNames.CSharp)
if (languageName == LanguageNames.CSharp ||
languageName == LanguageNames.VisualBasic)
{
_codeFixProvider = new CSharpRenameTrackingCodeFixProvider(
_historyRegistry,
SpecializedCollections.SingletonEnumerable(_mockRefactorNotifyService));
}
else if (languageName == LanguageNames.VisualBasic)
{
_codeFixProvider = new VisualBasicRenameTrackingCodeFixProvider(
_codeRefactoringProvider = new RenameTrackingCodeRefactoringProvider(
_historyRegistry,
SpecializedCollections.SingletonEnumerable(_mockRefactorNotifyService));
}
......@@ -173,15 +169,15 @@ public async Task AssertNoTag()
Assert.Equal(0, tags.Count());
}
public async Task<IList<Diagnostic>> GetDocumentDiagnosticsAsync(Document document = null)
public Task<Diagnostic> TryGetDocumentDiagnosticAsync(Document document = null)
{
document ??= this.Workspace.CurrentSolution.GetDocument(_hostDocument.Id);
var analyzer = new RenameTrackingDiagnosticAnalyzer();
return (await DiagnosticProviderTestUtilities.GetDocumentDiagnosticsAsync(analyzer, document,
(await document.GetSyntaxRootAsync()).FullSpan)).ToList();
return _codeRefactoringProvider.TryGetDiagnosticAsync(document, CancellationToken.None);
}
public async Task AssertTag(string expectedFromName, string expectedToName, bool invokeAction = false)
public async Task AssertTag(
string expectedFromName, string expectedToName,
bool invokeAction = false)
{
await WaitForAsyncOperationsAsync();
......@@ -193,15 +189,16 @@ public async Task AssertTag(string expectedFromName, string expectedToName, bool
var tag = tags.Single();
var document = this.Workspace.CurrentSolution.GetDocument(_hostDocument.Id);
var diagnostics = await GetDocumentDiagnosticsAsync(document);
var diagnostic = await TryGetDocumentDiagnosticAsync(document);
// There should be a single rename tracking diagnostic
Assert.Equal(1, diagnostics.Count);
Assert.Equal(RenameTrackingDiagnosticAnalyzer.DiagnosticId, diagnostics[0].Id);
Assert.NotNull(diagnostic);
Assert.Equal(RenameTrackingCodeRefactoringProvider.DiagnosticId, diagnostic.Id);
var actions = new List<CodeAction>();
var context = new CodeFixContext(document, diagnostics[0], (a, d) => actions.Add(a), CancellationToken.None);
await _codeFixProvider.RegisterCodeFixesAsync(context);
var context = new CodeRefactoringContext(
document, diagnostic.Location.SourceSpan, actions.Add, CancellationToken.None);
await _codeRefactoringProvider.ComputeRefactoringsAsync(context);
// There should only be one code action
Assert.Equal(1, actions.Count);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册