提交 592d0dcd 编写于 作者: V VSadov

More tests for IDE scenarios

上级 e088c392
......@@ -194,6 +194,7 @@
<Compile Include="Diagnostics\NamingStyles\NamingStyleTests.IdentifierCreation.Casing.vb" />
<Compile Include="Diagnostics\UseAutoProperty\UseAutoPropertyTests.vb" />
<Compile Include="Expansion\LambdaParameterExpansionTests.vb" />
<Compile Include="FindReferences\FindReferencesTests.Tuples.vb" />
<Compile Include="GoToImplementation\GoToImplementationTests.vb" />
<Compile Include="IntelliSense\CompletionServiceTests.vb" />
<Compile Include="InteractivePaste\InteractivePasteCommandHandlerTests.vb" />
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
Imports System.Threading.Tasks
Namespace Microsoft.CodeAnalysis.Editor.UnitTests.FindReferences
Partial Public Class FindReferencesTests
Dim tuple2Doc As XElement =
<Document>
namespace System
{
// struct with two values
public struct ValueTuple&lt;T1, T2>
{
public T1 Item1;
public T2 Item2;
public ValueTuple(T1 item1, T2 item2)
{
this.Item1 = item1;
this.Item2 = item2;
}
public override string ToString()
{
return '{' + Item1?.ToString() + "", "" + Item2?.ToString() + '}';
}
}
}
</Document>
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuples01() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ({|Definition:[|Alice|]|}:1, Bob: 2);
var y = ([|Alice|]:1, Bob: 2);
var z = x.[|$$Alice|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuples02() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ({|Definition:[|$$Alice|]|}:1, Bob: 2);
var y = ([|Alice|]:1, Bob: 2);
var z = x.[|Alice|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuples03() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ([|Alice|]:1, Bob: 2);
var y = ({|Definition:[|$$Alice|]|}:1, Bob: 2);
var z = x.[|Alice|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuplesMultidocument() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program1
{
static void Main(string[] args)
{
// this is odd that these are considered references, but that is
// how it works for now.
// NOTE: types like (int Alice, int Bob) may have distinct declaring references,
// but are also equal, in the symbol equality sense, types.
var x = ([|Alice|]:1, Bob: 2);
var y = ([|Alice|]:1, Bob: 2);
var z = x.[|Alice|];
}
}
]]>
</Document>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ([|Alice|]:1, Bob: 2);
var y = ({|Definition:[|$$Alice|]|}:1, Bob: 2);
var z = x.[|Alice|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldDifferentTuples01() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ({|Definition:[|Alice|]|}:1, Bob: 2);
var y = (Alice:1.1, Bob: 2);
var z = x.[|$$Alice|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuplesMatchOuterSymbols01() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = ({|Definition:[|Program|]|}:1, Main: 2);
var y = ([|Program|]:1, Main: 2);
var z = x.[|$$Program|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.FindReferences)>
Public Async Function TestTupleFieldSameTuplesMatchOuterSymbols02() As Task
Dim input =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document><![CDATA[
class Program
{
static void Main(string[] args)
{
var x = (1,2,3,4,5,6,7,8,9,10,11,{|Definition:[|Program|]|}:1, Main: 2);
var x1 = (1,2,3,4,5,6,7,8,9,10,11,[|Program|]:1, Main: 2);
var y = (Program:1, Main: 2);
var z = x.[|$$Program|];
}
}
]]>
</Document>
</Project>
</Workspace>
Await TestAPIAndFeature(input)
End Function
End Class
End Namespace
......@@ -765,6 +765,245 @@ class C
Await TestAsync(workspace)
End Function
#End Region
#Region "CSharp TupleTests"
Dim tuple2Doc As XElement =
<Document>
namespace System
{
// struct with two values
public struct ValueTuple&lt;T1, T2>
{
public T1 Item1;
public T2 Item2;
public ValueTuple(T1 item1, T2 item2)
{
this.Item1 = item1;
this.Item2 = item2;
}
public override string ToString()
{
return '{' + Item1?.ToString() + "", "" + Item2?.ToString() + '}';
}
}
}
</Document>
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldEqualTuples01() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = ([|Alice|]: 1, Bob: 2);
var y = (Alice: 1, Bob: 2);
var z1 = x.$$Alice;
var z2 = y.Alice;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldEqualTuples02() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<!-- intentionally not including tuple2, shoudl still work -->
<Document>
class Program
{
static void Main(string[] args)
{
var x = (Alice: 1, Bob: 2);
var y = ([|Alice|]: 1, Bob: 2);
var z1 = x.Alice;
var z2 = y.$$Alice;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter01() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = ([|Program|]: 1, Main: 2);
var z = x.$$Program;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter02() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = ([|Pro$$gram|]: 1, Main: 2);
var z = x.Program;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter03() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = (1,2,3,4,5,6,7,8,9,10, [|Program|]: 1, Main: 2);
var z = x.$$Program;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldRedeclared01() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
(int [|Alice|], int Bob) x = (Alice: 1, Bob: 2);
var z1 = x.$$Alice;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldRedeclared02() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
(string Alice, int Bob) x = ([|Al$$ice|]: null, Bob: 2);
var z1 = x.Alice;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldItem01() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = ([|1|], Bob: 2);
var z1 = x.$$Item1;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.GoToDefinition)>
Public Async Function TestCSharpGotoDefinitionTupleFieldItem02() As Task
Dim workspace =
<Workspace>
<Project Language="C#" CommonReferences="true">
<%= tuple2Doc %>
<Document>
class Program
{
static void Main(string[] args)
{
var x = ([|Alice|]: 1, Bob: 2);
var z1 = x.$$Item1;
}
}
</Document>
</Project>
</Workspace>
Await TestAsync(workspace)
End Function
#End Region
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册