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