提交 b0bfc521 编写于 作者: C CyrusNajmabadi 提交者: GitHub

Merge pull request #17412 from CyrusNajmabadi/addTest

Add test; update test infrastructure.
......@@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.ChangeSignature
{
public partial class ChangeSignatureTests : AbstractChangeSignatureTests
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new ChangeSignatureCodeRefactoringProvider();
protected override string GetLanguage()
......
......@@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeActions.ConvertIfTo
{
public class ConvertIfToSwitchTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new CSharpConvertIfToSwitchCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsConvertIfToSwitch)]
......
......@@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeActions.ConvertNume
{
public class ConvertNumericLiteralTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new CSharpConvertNumericLiteralCodeRefactoringProvider();
private enum Refactoring { ChangeBase1, ChangeBase2, AddOrRemoveDigitSeparators }
......
......@@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Encaps
{
public class EncapsulateFieldTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new EncapsulateFieldRefactoringProvider();
private static readonly Dictionary<OptionKey, object> AllOptionsOff =
......
......@@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Extrac
{
public class ExtractMethodTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new ExtractMethodCodeRefactoringProvider();
[WorkItem(540799, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/540799")]
......
......@@ -11,10 +11,8 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Genera
{
public class GenerateDefaultConstructorsTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new GenerateDefaultConstructorsCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new GenerateDefaultConstructorsCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateDefaultConstructors)]
public async Task TestProtectedBase()
......
......@@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Inline
{
public class InlineTemporaryTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new InlineTemporaryCodeRefactoringProvider();
private async Task TestFixOneAsync(string initial, string expected, bool compareTokens = true)
......
......@@ -17,7 +17,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Introd
{
public class IntroduceVariableTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new IntroduceVariableCodeRefactoringProvider();
private readonly CodeStyleOption<bool> onWithInfo = new CodeStyleOption<bool>(true, NotificationOption.Suggestion);
......
......@@ -17,10 +17,8 @@ public class InvertIfTests : AbstractCSharpCodeActionTest
await TestAsync(CreateTreeText(initial), CreateTreeText(expected), index: 0);
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new InvertIfCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new InvertIfCodeRefactoringProvider();
private string CreateTreeText(string initial)
{
......
......@@ -10,10 +10,8 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Lambda
{
public class LambdaSimplifierTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new LambdaSimplifierCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new LambdaSimplifierCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsLambdaSimplifier)]
public async Task TestFixAll1()
......
......@@ -11,10 +11,8 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.MoveDe
{
public class MoveDeclarationNearReferenceTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new MoveDeclarationNearReferenceCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new MoveDeclarationNearReferenceCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsMoveDeclarationNearReference)]
public async Task TestMove1()
......
......@@ -26,10 +26,8 @@ public partial class PreviewTests : AbstractCSharpCodeActionTest
private static readonly ProjectId s_addedProjectId = ProjectId.CreateNewId();
private const string ChangedDocumentText = "class C {}";
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new MyCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new MyCodeRefactoringProvider();
private class MyCodeRefactoringProvider : CodeRefactoringProvider
{
......@@ -83,10 +81,10 @@ protected override Task<Solution> GetChangedSolutionAsync(CancellationToken canc
private void GetMainDocumentAndPreviews(TestWorkspace workspace, out Document document, out SolutionPreviewResult previews)
{
document = GetDocument(workspace);
var provider = CreateCodeRefactoringProvider(workspace);
var provider = CreateCodeRefactoringProvider(workspace, fixProviderData: null);
var span = document.GetSyntaxRootAsync().Result.Span;
var refactorings = new List<CodeAction>();
var context = new CodeRefactoringContext(document, span, (a) => refactorings.Add(a), CancellationToken.None);
var context = new CodeRefactoringContext(document, span, refactorings.Add, CancellationToken.None);
provider.ComputeRefactoringsAsync(context).Wait();
var action = refactorings.Single();
var editHandler = workspace.ExportProvider.GetExportedValue<ICodeActionEditHandlerService>();
......
......@@ -16,7 +16,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeActions.ReplaceMeth
{
public class ReplaceMethodWithPropertyTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new ReplaceMethodWithPropertyCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsReplaceMethodWithProperty)]
......
......@@ -13,7 +13,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeActions.ReplaceProp
{
public class ReplacePropertyWithMethodsTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new ReplacePropertyWithMethodsCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsReplacePropertyWithMethods)]
......
......@@ -10,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.UseNam
{
public class UseNamedArgumentsTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new CSharpUseNamedArgumentsCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsUseNamedArguments)]
......
......@@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.ConvertToInterpolatedSt
{
public class ConvertConcatenationToInterpolatedStringTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new CSharpConvertConcatenationToInterpolatedStringRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsConvertToInterpolatedString)]
......
......@@ -11,8 +11,8 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.ConvertToInterpolatedSt
{
public class ConvertPlaceholderToInterpolatedStringTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace) =>
new CSharpConvertPlaceholderToInterpolatedStringRefactoringProvider();
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new CSharpConvertPlaceholderToInterpolatedStringRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsConvertToInterpolatedString)]
public async Task TestSingleItemSubstitution()
......
......@@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.GenerateFromMembers.Add
{
public class AddConstructorParametersFromMembersTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new AddConstructorParametersFromMembersCodeRefactoringProvider();
[Fact, WorkItem(308077, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/308077"), Trait(Traits.Feature, Traits.Features.CodeActionsAddConstructorParametersFromMembers)]
......
......@@ -772,6 +772,25 @@ public void M()
{
}[||]
public void N() { }
}");
}
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateConstructorFromMembers)]
public async Task TestMissingOnMember3()
{
await TestMissingAsync(
@"using System.Collections.Generic;
class Z
{
int a;
string b;
public void M()
{
[||]
}
public void N() { }
}");
}
......
......@@ -14,7 +14,7 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.GenerateEqualsAndGetHas
{
public class GenerateEqualsAndGetHashCodeTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider();
[Fact, Trait(Traits.Feature, Traits.Features.CodeActionsGenerateEqualsAndGetHashCode)]
......
......@@ -10,10 +10,8 @@ namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.CodeRefactorings.Introd
{
public class InteractiveIntroduceVariableTests : AbstractCSharpCodeActionTest
{
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new IntroduceVariableCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new IntroduceVariableCodeRefactoringProvider();
protected Task TestAsync(string initial, string expected, int index = 0, bool compareTokens = true)
{
......
......@@ -25,14 +25,10 @@ public partial class LinkedFileDiffMergingEditorTests : AbstractCodeActionTest
</Workspace>";
protected override string GetLanguage()
{
return LanguageNames.CSharp;
}
=> LanguageNames.CSharp;
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new TestCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new TestCodeRefactoringProvider();
[WpfFact]
public async Task TestCodeActionPreviewAndApply()
......
......@@ -22,11 +22,7 @@ namespace Microsoft.CodeAnalysis.Editor.UnitTests.CodeActions
{
public abstract class AbstractCodeActionTest : AbstractCodeActionOrUserDiagnosticTest
{
protected virtual CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
=> throw new NotImplementedException();
protected virtual CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> CreateCodeRefactoringProvider(workspace);
protected abstract CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData);
protected override async Task<IList<CodeAction>> GetCodeActionsWorkerAsync(
TestWorkspace workspace, string fixAllActionEquivalenceKey, object fixProviderData)
......
......@@ -20,10 +20,8 @@ public abstract class AbstractMoveTypeTest : AbstractCodeActionTest
private string RenameFileCodeActionTitle = FeaturesResources.Rename_file_to_0;
private string RenameTypeCodeActionTitle = FeaturesResources.Rename_type_to_0;
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace)
{
return new MoveTypeCodeRefactoringProvider();
}
protected override CodeRefactoringProvider CreateCodeRefactoringProvider(Workspace workspace, object fixProviderData)
=> new MoveTypeCodeRefactoringProvider();
protected async Task TestRenameTypeToMatchFileAsync(
string originalCode,
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.AddConstructorPara
Public Class AddConstructorParameterFromMembersTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New AddConstructorParametersFromMembersCodeRefactoringProvider()
End Function
......
......@@ -14,7 +14,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ChangeSignature
Return LanguageNames.VisualBasic
End Function
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New ChangeSignatureCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.Conver
Public Class ConvertIfToSwitchTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New VisualBasicConvertIfToSwitchCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.Conver
Public Class ConvertNumericLiteralTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New VisualBasicConvertNumericLiteralCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.E
Public Class EncapsulateFieldTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New EncapsulateFieldRefactoringProvider()
End Function
......
......@@ -7,7 +7,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.E
Public Class ExtractMethodTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New ExtractMethodCodeRefactoringProvider()
End Function
......
......@@ -7,7 +7,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.G
Public Class GenerateDefaultConstructorsTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New GenerateDefaultConstructorsCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.I
Public Class InlineTemporaryTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New InlineTemporaryCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.I
Public Class IntroduceVariableTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New IntroduceVariableCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings.I
Public Class InvertIfTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New InvertIfCodeRefactoringProvider()
End Function
......
......@@ -18,7 +18,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings
Private Shared ReadOnly s_addedProjectId As ProjectId = ProjectId.CreateNewId()
Private Const s_changedDocumentText As String = "Class C : End Class"
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New MyCodeRefactoringProvider()
End Function
......@@ -66,7 +66,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeRefactorings
Private Sub GetMainDocumentAndPreviews(workspace As TestWorkspace, ByRef document As Document, ByRef previews As SolutionPreviewResult)
document = GetDocument(workspace)
Dim provider = CreateCodeRefactoringProvider(workspace)
Dim provider = CreateCodeRefactoringProvider(workspace, fixProviderData:=Nothing)
Dim span = document.GetSyntaxRootAsync().Result.Span
Dim refactorings = New List(Of CodeAction)()
Dim context = New CodeRefactoringContext(document, span, Sub(a) refactorings.Add(a), CancellationToken.None)
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.Replac
Public Class ReplaceMethodWithPropertyTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New ReplaceMethodWithPropertyCodeRefactoringProvider()
End Function
......
......@@ -6,7 +6,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.Replac
Public Class ReplacePropertyWithMethodsTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New ReplacePropertyWithMethodsCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.CodeActions.UseNam
Public Class UseNamedArgumentsTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New VisualBasicUseNamedArgumentsCodeRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ConvertToInterpola
Public Class ConvertConcatenationToInterpolatedStringTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New VisualBasicConvertConcatenationToInterpolatedStringRefactoringProvider()
End Function
......
......@@ -10,7 +10,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ConvertToInterpola
Public Class ConvertPlaceholderToInterpolatedStringTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New VisualBasicConvertPlaceholderToInterpolatedStringRefactoringProvider()
End Function
......
......@@ -8,7 +8,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.GenerateConstructo
Public Class GenerateEqualsAndGetHashCodeFromMembersTests
Inherits AbstractVisualBasicCodeActionTest
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace) As CodeRefactoringProvider
Protected Overrides Function CreateCodeRefactoringProvider(workspace As Workspace, fixProviderData As Object) As CodeRefactoringProvider
Return New GenerateEqualsAndGetHashCodeFromMembersCodeRefactoringProvider()
End Function
......
......@@ -62,6 +62,15 @@ protected override async Task<Document> GetChangedDocumentAsync(CancellationToke
}
var syntaxTree = await _document.GetSyntaxTreeAsync(cancellationToken).ConfigureAwait(false);
// If the user has selected a set of members (i.e. TextSpan is not empty), then we will
// choose the right location (i.e. null) to insert the constructor. However, if they're
// just invoking the feature manually at a specific location, then we'll insert the
// members at that specific place in the class/struct.
var afterThisLocation = _state.TextSpan.IsEmpty
? syntaxTree.GetLocation(_state.TextSpan)
: null;
var result = await codeGenerationService.AddMethodAsync(
_document.Project.Solution,
_state.ContainingType,
......@@ -75,7 +84,7 @@ protected override async Task<Document> GetChangedDocumentAsync(CancellationToke
thisConstructorArguments: thisConstructorArguments),
new CodeGenerationOptions(
contextLocation: syntaxTree.GetLocation(_state.TextSpan),
afterThisLocation: _state.TextSpan.IsEmpty ? syntaxTree.GetLocation(_state.TextSpan) : null),
afterThisLocation: afterThisLocation),
cancellationToken: cancellationToken).ConfigureAwait(false);
return result;
......
......@@ -55,13 +55,21 @@ protected override async Task<Document> GetChangedDocumentAsync(CancellationToke
parameterToNewFieldMap: null,
cancellationToken: cancellationToken);
// If the user has selected a set of members (i.e. TextSpan is not empty), then we will
// choose the right location (i.e. null) to insert the constructor. However, if they're
// just invoking the feature manually at a specific location, then we'll insert the
// members at that specific place in the class/struct.
var afterThisLocation = _state.TextSpan.IsEmpty
? syntaxTree.GetLocation(_state.TextSpan)
: null;
var result = await CodeGenerator.AddMemberDeclarationsAsync(
_document.Project.Solution,
_state.ContainingType,
members,
new CodeGenerationOptions(
contextLocation: syntaxTree.GetLocation(_state.TextSpan),
afterThisLocation: _state.TextSpan.IsEmpty ? syntaxTree.GetLocation(_state.TextSpan) : null),
afterThisLocation: afterThisLocation),
cancellationToken).ConfigureAwait(false);
return result;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册