From 592d0dcd7ea2e1db8ad6e071133709eaf1b7f306 Mon Sep 17 00:00:00 2001 From: VSadov Date: Wed, 25 Jan 2017 17:13:01 -0800 Subject: [PATCH] More tests for IDE scenarios --- .../Test2/EditorServicesTest2.vbproj | 1 + .../FindReferencesTests.Tuples.vb | 234 +++++++++++++++++ .../GoToDefinition/GoToDefinitionTests.vb | 239 ++++++++++++++++++ 3 files changed, 474 insertions(+) create mode 100644 src/EditorFeatures/Test2/FindReferences/FindReferencesTests.Tuples.vb diff --git a/src/EditorFeatures/Test2/EditorServicesTest2.vbproj b/src/EditorFeatures/Test2/EditorServicesTest2.vbproj index e00b081389c..89579920efa 100644 --- a/src/EditorFeatures/Test2/EditorServicesTest2.vbproj +++ b/src/EditorFeatures/Test2/EditorServicesTest2.vbproj @@ -194,6 +194,7 @@ + diff --git a/src/EditorFeatures/Test2/FindReferences/FindReferencesTests.Tuples.vb b/src/EditorFeatures/Test2/FindReferences/FindReferencesTests.Tuples.vb new file mode 100644 index 00000000000..5bef568fb55 --- /dev/null +++ b/src/EditorFeatures/Test2/FindReferences/FindReferencesTests.Tuples.vb @@ -0,0 +1,234 @@ +' 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 = + +namespace System +{ + // struct with two values + public struct ValueTuple<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() + '}'; + } + } +} + + + + Public Async Function TestTupleFieldSameTuples01() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldSameTuples02() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldSameTuples03() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldSameTuplesMultidocument() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldDifferentTuples01() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldSameTuplesMatchOuterSymbols01() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + + Public Async Function TestTupleFieldSameTuplesMatchOuterSymbols02() As Task + Dim input = + + + <%= tuple2Doc %> + + + + + Await TestAPIAndFeature(input) + End Function + + End Class +End Namespace diff --git a/src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb b/src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb index ad3fee9687b..d494328a846 100644 --- a/src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb +++ b/src/EditorFeatures/Test2/GoToDefinition/GoToDefinitionTests.vb @@ -765,6 +765,245 @@ class C Await TestAsync(workspace) End Function +#End Region + +#Region "CSharp TupleTests" + Dim tuple2Doc As XElement = + +namespace System +{ + // struct with two values + public struct ValueTuple<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() + '}'; + } + } +} + + + + Public Async Function TestCSharpGotoDefinitionTupleFieldEqualTuples01() As Task + Dim workspace = + + + <%= tuple2Doc %> + + 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; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldEqualTuples02() As Task + Dim workspace = + + + + + 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; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter01() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + var x = ([|Program|]: 1, Main: 2); + + var z = x.$$Program; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter02() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + var x = ([|Pro$$gram|]: 1, Main: 2); + + var z = x.Program; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldMatchToOuter03() As Task + Dim workspace = + + + <%= tuple2Doc %> + + 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; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldRedeclared01() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + (int [|Alice|], int Bob) x = (Alice: 1, Bob: 2); + + var z1 = x.$$Alice; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldRedeclared02() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + (string Alice, int Bob) x = ([|Al$$ice|]: null, Bob: 2); + + var z1 = x.Alice; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldItem01() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + var x = ([|1|], Bob: 2); + + var z1 = x.$$Item1; + } + } + + + + + Await TestAsync(workspace) + End Function + + + Public Async Function TestCSharpGotoDefinitionTupleFieldItem02() As Task + Dim workspace = + + + <%= tuple2Doc %> + + class Program + { + static void Main(string[] args) + { + var x = ([|Alice|]: 1, Bob: 2); + + var z1 = x.$$Item1; + } + } + + + + + Await TestAsync(workspace) + End Function #End Region -- GitLab