提交 15456cdb 编写于 作者: C Cyrus Najmabadi

Make more tests async.

上级 b26ab8d4
......@@ -7,25 +7,26 @@ Imports Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces
Imports Microsoft.CodeAnalysis.Text
Imports Roslyn.Test.Utilities
Imports Roslyn.Utilities
Imports System.Threading.Tasks
#Disable Warning RS0007 ' Avoid zero-length array allocations. This is non-shipping test code.
Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Partial Public Class CSharpNavigationBarTests
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545021)>
Public Sub GenericTypeVariance()
AssertItemsAre(
Public Async Function TestGenericTypeVariance() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document><![CDATA[interface C<in I, out O> { }]]></Document>
</Project>
</Workspace>,
Item("C<in I, out O>", Glyph.InterfaceInternal, children:={}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545284)>
Public Sub GenericMember()
AssertItemsAre(
Public Async Function TestGenericMember() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document><![CDATA[class Program { static void Swap<T>(T lhs, T rhs) { }}]]></Document>
......@@ -33,11 +34,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("Program", Glyph.ClassInternal, children:={
Item("Swap<T>(T lhs, T rhs)", Glyph.MethodPrivate)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545023)>
Public Sub NestedClasses()
AssertItemsAre(
Public Async Function TestNestedClasses() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>class C { class Nested { } }</Document>
......@@ -45,11 +46,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal, children:={}),
Item("C.Nested", Glyph.ClassPrivate, children:={}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545023)>
Public Sub SelectedItemForNestedClass()
AssertSelectedItemsAre(
Public Async Function TestSelectedItemForNestedClass() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>class C { class Nested { $$ } }</Document>
......@@ -57,11 +58,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C.Nested", Glyph.ClassPrivate), False,
Nothing, False)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545019)>
Public Sub SelectedItemForEnumAfterComma()
AssertSelectedItemsAre(
Public Async Function TestSelectedItemForEnumAfterComma() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>enum E { A,$$ B }</Document>
......@@ -69,11 +70,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("E", Glyph.EnumInternal), False,
Item("A", Glyph.EnumMember), False)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545114)>
Public Sub SelectedItemForFieldAfterSemicolon()
AssertSelectedItemsAre(
Public Async Function TestSelectedItemForFieldAfterSemicolon() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>class C { int foo;$$ }</Document>
......@@ -81,11 +82,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal), False,
Item("foo", Glyph.FieldPrivate), False)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545114)>
Public Sub SelectedItemForFieldInType()
AssertSelectedItemsAre(
Public Async Function TestSelectedItemForFieldInType() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>class C { in$$t foo; }</Document>
......@@ -93,11 +94,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal), False,
Item("foo", Glyph.FieldPrivate), False)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545267)>
Public Sub SelectedItemAtEndOfFile()
AssertSelectedItemsAre(
Public Async Function TestSelectedItemAtEndOfFile() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>class C { int foo; } $$</Document>
......@@ -105,11 +106,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal), True,
Item("foo", Glyph.FieldPrivate), True)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545012)>
Public Sub ExplicitInterfaceImplementation()
AssertItemsAre(
Public Async Function TestExplicitInterfaceImplementation() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -120,11 +121,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal, children:={
Item("IDisposable.Dispose()", Glyph.MethodPrivate)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545007)>
Public Sub RefAndOutParameters()
AssertItemsAre(
Public Async Function TestRefAndOutParameters() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -134,11 +135,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal, children:={
Item("M(out string foo, ref string bar)", Glyph.MethodPrivate)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545001)>
Public Sub OptionalParameter()
AssertItemsAre(
Public Async Function TestOptionalParameter() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -148,11 +149,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal, children:={
Item("M(int i = 0)", Glyph.MethodPrivate)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545274)>
Public Sub Properties()
AssertItemsAre(
Public Async Function TestProperties() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -162,11 +163,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal, children:={
Item("Number", Glyph.PropertyPrivate)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545220)>
Public Sub [Enum]()
AssertItemsAre(
Public Async Function TestEnum() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -178,11 +179,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Item("A", Glyph.EnumMember),
Item("B", Glyph.EnumMember),
Item("C", Glyph.EnumMember)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545220)>
Public Sub [Delegate]()
AssertItemsAre(
Public Async Function TestDelegate() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>
......@@ -191,11 +192,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Project>
</Workspace>,
Item("Foo", Glyph.DelegateInternal, children:={}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(545114)>
Public Sub PartialClassWithFieldInOtherFile()
AssertSelectedItemsAre(
Public Async Function TestPartialClassWithFieldInOtherFile() As Task
Await AssertSelectedItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>partial class C { $$ }</Document>
......@@ -204,11 +205,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
</Workspace>,
Item("C", Glyph.ClassInternal), False,
Item("foo", Glyph.FieldPrivate, grayed:=True), True)
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(578100)>
Public Sub PartialClassWithBothPartialMethodParts1()
AssertItemsAre(
Public Async Function TestPartialClassWithBothPartialMethodParts1() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>partial class C { $$partial void M(); }</Document>
......@@ -218,11 +219,11 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Item("C", Glyph.ClassInternal, children:={
Item("M()", Glyph.MethodPrivate),
Item("M()", Glyph.MethodPrivate, grayed:=True)}))
End Sub
End Function
<WpfFact, Trait(Traits.Feature, Traits.Features.NavigationBar), WorkItem(578100)>
Public Sub PartialClassWithBothPartialMethodParts2()
AssertItemsAre(
Public Async Function TestPartialClassWithBothPartialMethodParts2() As Task
Await AssertItemsAreAsync(
<Workspace>
<Project Language="C#" CommonReferences="true">
<Document>partial class C { partial void M(); }</Document>
......@@ -232,6 +233,6 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Item("C", Glyph.ClassInternal, children:={
Item("M()", Glyph.MethodPrivate),
Item("M()", Glyph.MethodPrivate, grayed:=True)}))
End Sub
End Function
End Class
End Namespace
......@@ -16,12 +16,12 @@ Imports Roslyn.Utilities
Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Friend Module TestHelpers
Public Sub AssertItemsAre(workspaceElement As XElement, ParamArray expectedItems As ExpectedItem())
AssertItemsAre(workspaceElement, True, expectedItems)
End Sub
Public Function AssertItemsAreAsync(workspaceElement As XElement, ParamArray expectedItems As ExpectedItem()) As Tasks.Task
Return AssertItemsAreAsync(workspaceElement, True, expectedItems)
End Function
Public Sub AssertItemsAre(workspaceElement As XElement, workspaceSupportsChangeDocument As Boolean, ParamArray expectedItems As ExpectedItem())
Using workspace = TestWorkspaceFactory.CreateWorkspace(workspaceElement)
Public Async Function AssertItemsAreAsync(workspaceElement As XElement, workspaceSupportsChangeDocument As Boolean, ParamArray expectedItems As ExpectedItem()) As Tasks.Task
Using workspace = Await TestWorkspaceFactory.CreateWorkspaceAsync(workspaceElement)
workspace.CanApplyChangeDocument = workspaceSupportsChangeDocument
Dim document = workspace.CurrentSolution.Projects.First().Documents.First()
......@@ -33,10 +33,10 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
AssertEqual(expectedItems, actualItems, document.Project.LanguageServices.GetService(Of ISyntaxFactsService)().IsCaseSensitive)
End Using
End Sub
End Function
Public Sub AssertSelectedItemsAre(workspaceElement As XElement, leftItem As ExpectedItem, leftItemGrayed As Boolean, rightItem As ExpectedItem, rightItemGrayed As Boolean)
Using workspace = TestWorkspaceFactory.CreateWorkspace(workspaceElement)
Public Async Function AssertSelectedItemsAreAsync(workspaceElement As XElement, leftItem As ExpectedItem, leftItemGrayed As Boolean, rightItem As ExpectedItem, rightItemGrayed As Boolean) As Tasks.Task
Using workspace = Await TestWorkspaceFactory.CreateWorkspaceAsync(workspaceElement)
Dim document = workspace.CurrentSolution.Projects.First().Documents.First()
Dim snapshot = document.GetTextAsync().Result.FindCorrespondingEditorTextSnapshot()
......@@ -55,10 +55,10 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
AssertEqual(rightItem, selectedItems.MemberItem, isCaseSensitive)
Assert.Equal(rightItemGrayed, selectedItems.ShowMemberItemGrayed)
End Using
End Sub
End Function
Public Sub AssertGeneratedResultIs(workspaceElement As XElement, leftItemToSelectText As String, rightItemToSelectText As String, expectedText As XElement)
Using workspace = TestWorkspaceFactory.CreateWorkspace(workspaceElement)
Public Async Function AssertGeneratedResultIsAsync(workspaceElement As XElement, leftItemToSelectText As String, rightItemToSelectText As String, expectedText As XElement) As Tasks.Task
Using workspace = Await TestWorkspaceFactory.CreateWorkspaceAsync(workspaceElement)
Dim document = workspace.CurrentSolution.Projects.First().Documents.First()
Dim snapshot = document.GetTextAsync().Result.FindCorrespondingEditorTextSnapshot()
......@@ -78,15 +78,15 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Dim expected = expectedText.NormalizedValue.TrimEnd()
Assert.Equal(expected, actual)
End Using
End Sub
End Function
Public Sub AssertNavigationPoint(workspaceElement As XElement,
Public Async Function AssertNavigationPointAsync(workspaceElement As XElement,
startingDocumentFilePath As String,
leftItemToSelectText As String,
rightItemToSelectText As String,
Optional expectedVirtualSpace As Integer = 0)
Optional expectedVirtualSpace As Integer = 0) As Tasks.Task
Using workspace = TestWorkspaceFactory.CreateWorkspace(workspaceElement)
Using workspace = Await TestWorkspaceFactory.CreateWorkspaceAsync(workspaceElement)
Dim sourceDocument = workspace.CurrentSolution.Projects.First().Documents.First(Function(doc) doc.FilePath = startingDocumentFilePath)
Dim snapshot = sourceDocument.GetTextAsync().Result.FindCorrespondingEditorTextSnapshot()
......@@ -106,7 +106,7 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.NavigationBar
Assert.Equal(expectedNavigationPosition, navigationPoint.Position)
Assert.Equal(expectedVirtualSpace, navigationPoint.VirtualSpaces)
End Using
End Sub
End Function
Private Sub AssertEqual(expectedItems As IEnumerable(Of ExpectedItem), actualItems As IEnumerable(Of NavigationBarItem), isCaseSensitive As Boolean)
Assert.Equal(expectedItems.Count, actualItems.Count)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册