protected void TestCodeRefactoring(string markupCode, string expected, ICodeActionSelector actionSelector) { var markup = new CodeMarkup(markupCode); var document = CreateDocumentFromCode(markup.Code); TestCodeRefactoring(document, expected, markup.Locator, actionSelector); }
public static RoslynTestKitException CodeRefactoringNotFound(ICodeActionSelector codeActionSelector, ImmutableArray <CodeAction> codeRefactorings, IDiagnosticLocator locator) { var refactoringDescriptions = GetActionsDescription(codeRefactorings, $" Found only {codeRefactorings.Length} CodeRefactorings: "); var message = $"Cannot find CodeRefactoring {codeActionSelector} at {locator.Description()}.{refactoringDescriptions}"; return(new RoslynTestKitException(message)); }
private void TestCodeRefactoring(Document document, string expected, IDiagnosticLocator locator, ICodeActionSelector codeActionSelector) { if (FailWhenInputContainsErrors) { var errors = document.GetErrors(); if (errors.Count > 0) { throw RoslynTestKitException.UnexpectedErrorDiagnostic(errors); } } var codeRefactorings = GetCodeRefactorings(document, locator); var selectedRefactoring = codeActionSelector.Find(codeRefactorings); if (selectedRefactoring is null) { throw RoslynTestKitException.CodeRefactoringNotFound(codeActionSelector, codeRefactorings, locator); } Verify.CodeAction(selectedRefactoring, document, expected); }
private void TestCodeFix(Document document, string expected, Diagnostic diagnostic, IDiagnosticLocator locator, ICodeActionSelector codeActionSelector) { var codeFixes = GetCodeFixes(document, diagnostic); var codeAction = codeActionSelector.Find(codeFixes); if (codeAction is null) { throw RoslynTestKitException.CodeFixNotFound(codeActionSelector, codeFixes, locator); } Verify.CodeAction(codeAction, document, expected); }
private void TestCodeFix(Document document, string expected, string diagnosticId, IDiagnosticLocator locator, ICodeActionSelector codeActionSelector) { var diagnostic = GetDiagnostic(document, diagnosticId, locator); TestCodeFix(document, expected, diagnostic, locator, codeActionSelector); }