提交 5864f7c7 编写于 作者: D David Poeschl

Restore unit test

上级 318fbed6
......@@ -184,6 +184,91 @@ void B()
await TestChangeSignatureViaCommandAsync(LanguageNames.CSharp, markup, updatedSignature: updatedSignature, expectedUpdatedInvocationDocumentCode: updatedCode);
}
[WpfFact, Trait(Traits.Feature, Traits.Features.ChangeSignature)]
[WorkItem(1102830, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1102830")]
[WorkItem(784, "https://github.com/dotnet/roslyn/issues/784")]
public async Task RemoveParameters_ExtensionMethodInAnotherFile()
{
var workspaceXml = @"
<Workspace>
<Project Language=""C#"" AssemblyName=""CSharpAssembly"" CommonReferences=""true"">";
for (var i = 0; i <= 4; i++)
{
workspaceXml += $@"
<Document FilePath = ""C{i}.cs"">
class C{i}
{{
void M()
{{
C5 c = new C5();
c.Ext(1, ""two"");
}}
}}
</Document>";
}
workspaceXml += @"
<Document FilePath = ""C5.cs"">
public class C5
{
}
public static class C5Ext
{
public void $$Ext(this C5 c, int i, string s)
{
}
}
</Document>";
for (var i = 6; i <= 9; i++)
{
workspaceXml += $@"
<Document FilePath = ""C{i}.cs"">
class C{i}
{{
void M()
{{
C5 c = new C5();
c.Ext(1, ""two"");
}}
}}
</Document>";
}
workspaceXml += @"
</Project>
</Workspace>";
// Ext(this F f, int i, string s) --> Ext(this F f, string s)
// If a reference does not bind correctly, it will believe Ext is not an extension
// method and remove the string argument instead of the int argument.
var updatedSignature = new[] {
new AddedParameterOrExistingIndex(0),
new AddedParameterOrExistingIndex(2) };
using var testState = ChangeSignatureTestState.Create(XElement.Parse(workspaceXml));
testState.TestChangeSignatureOptionsService.UpdatedSignature = updatedSignature;
var result = testState.ChangeSignature();
Assert.True(result.Succeeded);
Assert.Null(testState.ErrorMessage);
foreach (var updatedDocument in testState.Workspace.Documents.Select(d => result.UpdatedSolution.GetDocument(d.Id)))
{
if (updatedDocument.Name == "C5.cs")
{
Assert.Contains("void Ext(this C5 c, string s)", (await updatedDocument.GetTextAsync(CancellationToken.None)).ToString());
}
else
{
Assert.Contains(@"c.Ext(""two"");", (await updatedDocument.GetTextAsync(CancellationToken.None)).ToString());
}
}
}
[WpfFact, Trait(Traits.Feature, Traits.Features.ChangeSignature)]
[WorkItem(1102830, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1102830")]
[WorkItem(784, "https://github.com/dotnet/roslyn/issues/784")]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册