From b361126f456fc897ebe307c4a2945c45f2a9a47f Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 19 Nov 2015 23:09:14 -0800 Subject: [PATCH] Make more tests async. --- .../ExtractInterfaceViewModelTests.vb | 157 +++++++++--------- 1 file changed, 79 insertions(+), 78 deletions(-) diff --git a/src/VisualStudio/Core/Test/ExtractInterface/ExtractInterfaceViewModelTests.vb b/src/VisualStudio/Core/Test/ExtractInterface/ExtractInterfaceViewModelTests.vb index 6c9fdb3712b..ed3e1f6ae91 100644 --- a/src/VisualStudio/Core/Test/ExtractInterface/ExtractInterfaceViewModelTests.vb +++ b/src/VisualStudio/Core/Test/ExtractInterface/ExtractInterfaceViewModelTests.vb @@ -1,6 +1,7 @@ ' 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 +Imports System.Threading.Tasks Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis.Editor.UnitTests.Extensions Imports Microsoft.CodeAnalysis.Editor.UnitTests.Utilities @@ -14,7 +15,7 @@ Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.ExtractInterface Public Class ExtractInterfaceViewModelTests - Public Sub ExtractInterface_InterfaceNameIsSameAsPassedIn() + Public Async Function TestExtractInterface_InterfaceNameIsSameAsPassedIn() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("IMyClass", viewModel.InterfaceName) Dim monitor = New PropertyChangedTestMonitor(viewModel) @@ -36,10 +37,10 @@ class $$MyClass monitor.VerifyExpectations() monitor.Detach() - End Sub + End Function - Public Sub ExtractInterface_FileNameHasExpectedExtension() + Public Async Function TestExtractInterface_FileNameHasExpectedExtension() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("IMyClass.cs", viewModel.FileName) - End Sub + End Function - Public Sub ExtractInterface_GeneratedNameInGlobalNamespace() + Public Async Function TestExtractInterface_GeneratedNameInGlobalNamespace() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("IMyClass", viewModel.GeneratedName) - End Sub + End Function - Public Sub ExtractInterface_GeneratedNameInNestedNamespaces() + Public Async Function TestExtractInterface_GeneratedNameInNestedNamespaces() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass", defaultNamespace:="Outer.Inner") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass", defaultNamespace:="Outer.Inner") Assert.Equal("Outer.Inner.IMyClass", viewModel.GeneratedName) - End Sub + End Function - Public Sub ExtractInterface_GeneratedNameWithTypeParameters() + Public Async Function TestExtractInterface_GeneratedNameWithTypeParameters() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass", defaultNamespace:="Outer.Inner", generatedNameTypeParameterSuffix:="") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass", defaultNamespace:="Outer.Inner", generatedNameTypeParameterSuffix:="") Assert.Equal("Outer.Inner.IMyClass", viewModel.GeneratedName) viewModel.InterfaceName = "IMyClassChanged" Assert.Equal("Outer.Inner.IMyClassChanged", viewModel.GeneratedName) - End Sub + End Function - Public Sub ExtractInterface_GeneratedNameIsGeneratedFromTrimmedInterfaceName() + Public Async Function TestExtractInterface_GeneratedNameIsGeneratedFromTrimmedInterfaceName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IC", defaultNamespace:="Ns") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IC", defaultNamespace:="Ns") viewModel.InterfaceName = " IC2 " Assert.Equal("Ns.IC2", viewModel.GeneratedName) - End Sub + End Function - Public Sub ExtractInterface_MembersCheckedByDefault() + Public Async Function TestExtractInterface_MembersCheckedByDefault() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.True(viewModel.MemberContainers.Single().IsChecked) - End Sub + End Function - Public Sub ExtractInterface_InterfaceNameChangesUpdateGeneratedName() + Public Async Function TestExtractInterface_InterfaceNameChangesUpdateGeneratedName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Dim monitor = New PropertyChangedTestMonitor(viewModel) monitor.AddExpectation(Function() viewModel.GeneratedName) @@ -162,10 +163,10 @@ class $$MyClass monitor.VerifyExpectations() monitor.Detach() - End Sub + End Function - Public Sub ExtractInterface_InterfaceNameChangesUpdateFileName() + Public Async Function TestExtractInterface_InterfaceNameChangesUpdateFileName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Dim monitor = New PropertyChangedTestMonitor(viewModel) monitor.AddExpectation(Function() viewModel.FileName) @@ -183,54 +184,54 @@ class $$MyClass monitor.VerifyExpectations() monitor.Detach() - End Sub + End Function - Public Sub ExtractInterface_FileNameIsGeneratedFromTrimmedInterfaceName() + Public Async Function TestExtractInterface_FileNameIsGeneratedFromTrimmedInterfaceName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IC") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IC") viewModel.InterfaceName = " IC2 " Assert.Equal("IC2.cs", viewModel.FileName) - End Sub + End Function - Public Sub ExtractInterface_InterfaceNameIsTrimmedOnSubmit() + Public Async Function TestExtractInterface_InterfaceNameIsTrimmedOnSubmit() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IC") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IC") viewModel.InterfaceName = " IC2 " Dim submitSucceeded = viewModel.TrySubmit() Assert.True(submitSucceeded, String.Format("Submit failed unexpectedly.")) - End Sub + End Function - Public Sub ExtractInterface_FileNameIsTrimmedOnSubmit() + Public Async Function TestExtractInterface_FileNameIsTrimmedOnSubmit() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IC") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IC") viewModel.FileName = " IC2.cs " Dim submitSucceeded = viewModel.TrySubmit() Assert.True(submitSucceeded, String.Format("Submit failed unexpectedly.")) - End Sub + End Function - Public Sub ExtractInterface_FileNameChangesDoNotUpdateInterfaceName() + Public Async Function TestExtractInterface_FileNameChangesDoNotUpdateInterfaceName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Dim monitor = New PropertyChangedTestMonitor(viewModel, strict:=True) monitor.AddExpectation(Function() viewModel.FileName) @@ -248,10 +249,10 @@ class $$MyClass monitor.VerifyExpectations() monitor.Detach() - End Sub + End Function - Public Sub ExtractInterface_SuccessfulCommit() + Public Async Function TestExtractInterface_SuccessfulCommit() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Dim submitSucceeded = viewModel.TrySubmit() Assert.True(submitSucceeded, String.Format("Submit failed unexpectedly.")) - End Sub + End Function - Public Sub ExtractInterface_SuccessfulCommit_NonemptyStrictSubsetOfMembersSelected() + Public Async Function TestExtractInterface_SuccessfulCommit_NonemptyStrictSubsetOfMembersSelected() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.MemberContainers.First().IsChecked = False Dim submitSucceeded = viewModel.TrySubmit() Assert.True(submitSucceeded, String.Format("Submit failed unexpectedly.")) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_InterfaceNameConflict() + Public Async Function TestExtractInterface_FailedCommit_InterfaceNameConflict() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass", conflictingTypeNames:=New List(Of String) From {"IMyClass"}) + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass", conflictingTypeNames:=New List(Of String) From {"IMyClass"}) Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_InterfaceNameNotAnIdentifier() + Public Async Function TestExtractInterface_FailedCommit_InterfaceNameNotAnIdentifier() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.InterfaceName = "SomeNamespace.IMyClass" Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_BadFileExtension() + Public Async Function TestExtractInterface_FailedCommit_BadFileExtension() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.FileName = "FileName.vb" Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_BadFileName() + Public Async Function TestExtractInterface_FailedCommit_BadFileName() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.FileName = "Bad*FileName.cs" Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_BadFileName2() + Public Async Function TestExtractInterface_FailedCommit_BadFileName2() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.FileName = "?BadFileName.cs" Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_FailedCommit_NoMembersSelected() + Public Async Function TestExtractInterface_FailedCommit_NoMembersSelected() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") viewModel.MemberContainers.Single().IsChecked = False Dim submitSucceeded = viewModel.TrySubmit() Assert.False(submitSucceeded) - End Sub + End Function - Public Sub ExtractInterface_MemberDisplay_Method() + Public Async Function TestExtractInterface_MemberDisplay_Method() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("Foo(T, CorrelationManager, ref int, [int?], [string], params int[])", viewModel.MemberContainers.Single().MemberName) - End Sub + End Function - Public Sub ExtractInterface_MemberDisplay_Property() + Public Async Function TestExtractInterface_MemberDisplay_Property() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("Foo", viewModel.MemberContainers.Where(Function(c) c.MemberSymbol.IsKind(SymbolKind.Property)).Single().MemberName) - End Sub + End Function - Public Sub ExtractInterface_MemberDisplay_Indexer() + Public Async Function TestExtractInterface_MemberDisplay_Indexer() As Task Dim markup = x, string y = "hi"] { get { return 1; } set { } } }"]]> - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal("this[int?, [string]]", viewModel.MemberContainers.Where(Function(c) c.MemberSymbol.IsKind(SymbolKind.Property)).Single().MemberName) - End Sub + End Function - Public Sub ExtractInterface_MembersSorted() + Public Async Function TestExtractInterface_MembersSorted() As Task Dim markup = - Dim viewModel = GetViewModel(markup, LanguageNames.CSharp, "IMyClass") + Dim viewModel = Await GetViewModelAsync(markup, LanguageNames.CSharp, "IMyClass") Assert.Equal(5, viewModel.MemberContainers.Count) Assert.Equal("Foo()", viewModel.MemberContainers.ElementAt(0).MemberName) Assert.Equal("Foo(int)", viewModel.MemberContainers.ElementAt(1).MemberName) Assert.Equal("Foo(int, int)", viewModel.MemberContainers.ElementAt(2).MemberName) Assert.Equal("Foo(int, string)", viewModel.MemberContainers.ElementAt(3).MemberName) Assert.Equal("Foo(string)", viewModel.MemberContainers.ElementAt(4).MemberName) - End Sub + End Function - Private Function GetViewModel(markup As XElement, + Private Async Function GetViewModelAsync(markup As XElement, languageName As String, defaultInterfaceName As String, Optional defaultNamespace As String = "", Optional generatedNameTypeParameterSuffix As String = "", Optional conflictingTypeNames As List(Of String) = Nothing, - Optional isValidIdentifier As Boolean = True) As ExtractInterfaceDialogViewModel + Optional isValidIdentifier As Boolean = True) As Tasks.Task(Of ExtractInterfaceDialogViewModel) Dim workspaceXml = @@ -461,7 +462,7 @@ public class $$MyClass - Using workspace = TestWorkspaceFactory.CreateWorkspace(workspaceXml) + Using workspace = Await TestWorkspaceFactory.CreateWorkspaceAsync(workspaceXml) Dim doc = workspace.Documents.Single() Dim workspaceDoc = workspace.CurrentSolution.GetDocument(doc.Id) If (Not doc.CursorPosition.HasValue) Then -- GitLab