public async Task Test_PublicMethodContractAnalyzer() { ClassTemplate template = await ClassTemplate.FromMethodAsync( @"public void Foo(string s{on}) {}"); ValidateDiagnostics(template); }
public async Task <bool> Test_Refactoring_Availability(string method) { var doc = await ClassTemplate.FromMethodAsync(method); var refactoring = await AddNotNullRequiresRefactoring.Create(doc.SelectedNode, doc.SemanticModel); return(await refactoring.IsAvailableAsync(CancellationToken.None)); }
public async Task TestDiagnosticMessage() { // Arrange ClassTemplate template = await ClassTemplate.FromMethodAsync( @"public class Bla{} public Bl{on}a Foo() {return new Bla();}"); // Act var diagnostics = GetSortedDiagnostics(template.Source); // Assert string message = @"Lack of not-null ensures for nullable return type 'Bla'."; Assert.AreEqual(diagnostics[0].GetMessage(), message); }
public async Task TestDiagnosticMessage() { // Arrange ClassTemplate template = await ClassTemplate.FromMethodAsync( @"public void Foo(string s{on}tr) {}"); // Act var diagnostics = GetSortedDiagnostics(template.Source); // Assert string message = @"Lack of argument validation for nullable parameter 'str'."; Assert.AreEqual(diagnostics[0].GetMessage(), message); }
public async Task Test_Reverse() { string method = @"public static void Foo(stirng s{caret}tr) {}"; var doc = await ClassTemplate.FromMethodAsync(method); var actions = new List <CodeAction>(); var context = new CodeRefactoringContext(doc.Document, doc.SelectedNode.Span, (a) => actions.Add(a), CancellationToken.None); var provider = new CodeContractor.Refactorings.AddRequiresRefactoringProvider(); provider.ComputeRefactoringsAsync(context).Wait(); if (actions.Count != 0) { var operations = await actions[0].GetOperationsAsync(CancellationToken.None); Assert.IsNotEmpty(operations); ApplyChangesOperation operation = operations.First() as ApplyChangesOperation; var changedSolution = operation.ChangedSolution; } }
public async Task TestAnalyzerAvailability(string source) { ClassTemplate template = await ClassTemplate.FromMethodAsync(source); ValidateDiagnostics(template); }