From 09b56d19385cd9003a8c919e354af534adf75317 Mon Sep 17 00:00:00 2001 From: CyrusNajmabadi Date: Wed, 12 Oct 2016 22:21:02 -0700 Subject: [PATCH] Update tests to validate that projects/references are added properly. --- src/EditorFeatures/Test/Workspaces/TestWorkspace.cs | 4 ++++ .../AbstractCrossLanguageUserDiagnosticTest.vb | 12 +++++++++--- .../AddMetadataReferenceCodeActionOperation.cs | 2 ++ .../AddProjectReferenceCodeActionOperation.cs | 2 ++ .../Core/Portable/AddImport/IAddImportUndoService.cs | 2 +- .../CodeActions/Operations/ApplyChangesOperation.cs | 2 ++ 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/EditorFeatures/Test/Workspaces/TestWorkspace.cs b/src/EditorFeatures/Test/Workspaces/TestWorkspace.cs index 1b99319b1ca..93effa73a7a 100644 --- a/src/EditorFeatures/Test/Workspaces/TestWorkspace.cs +++ b/src/EditorFeatures/Test/Workspaces/TestWorkspace.cs @@ -280,6 +280,10 @@ public override bool CanApplyChange(ApplyChangesKind feature) case ApplyChangesKind.ChangeAdditionalDocument: return this.CanApplyChangeDocument; + case ApplyChangesKind.AddProjectReference: + case ApplyChangesKind.AddMetadataReference: + return true; + default: return false; } diff --git a/src/EditorFeatures/Test2/Diagnostics/AbstractCrossLanguageUserDiagnosticTest.vb b/src/EditorFeatures/Test2/Diagnostics/AbstractCrossLanguageUserDiagnosticTest.vb index 8a04beec8bb..1b293e5ad40 100644 --- a/src/EditorFeatures/Test2/Diagnostics/AbstractCrossLanguageUserDiagnosticTest.vb +++ b/src/EditorFeatures/Test2/Diagnostics/AbstractCrossLanguageUserDiagnosticTest.vb @@ -53,11 +53,17 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.Diagnostics Dim codeActions = diagnosticAndFix.Item2.Fixes.Select(Function(f) f.Action).ToList() codeActions = MassageActions(codeActions) Dim codeAction = codeActions(codeActionIndex) - Dim operations = Await codeAction.GetOperationsAsync(CancellationToken.None) - Dim edit = operations.OfType(Of ApplyChangesOperation)().First() Dim oldSolution = workspace.CurrentSolution - Dim updatedSolution = edit.ChangedSolution + Dim operations = Await codeAction.GetOperationsAsync(CancellationToken.None) + + For Each operation In operations + If operation.ApplyDuringTests Then + operation.Apply(workspace, CancellationToken.None) + End If + Next + + Dim updatedSolution = workspace.CurrentSolution verifySolutions?.Invoke(oldSolution, updatedSolution) diff --git a/src/Features/Core/Portable/AddImport/AddMetadataReferenceCodeActionOperation.cs b/src/Features/Core/Portable/AddImport/AddMetadataReferenceCodeActionOperation.cs index 157b9e65ac3..2ff659ec2a1 100644 --- a/src/Features/Core/Portable/AddImport/AddMetadataReferenceCodeActionOperation.cs +++ b/src/Features/Core/Portable/AddImport/AddMetadataReferenceCodeActionOperation.cs @@ -20,6 +20,8 @@ public AddMetadataReferenceCodeActionOperation(DocumentId documentId, PortableEx _reference = reference; } + internal override bool ApplyDuringTests => true; + public override void Apply(Workspace workspace, CancellationToken cancellationToken) { var service = workspace.Services.GetService(); diff --git a/src/Features/Core/Portable/AddImport/AddProjectReferenceCodeActionOperation.cs b/src/Features/Core/Portable/AddImport/AddProjectReferenceCodeActionOperation.cs index 9a7737fbdf7..21c29e0f995 100644 --- a/src/Features/Core/Portable/AddImport/AddProjectReferenceCodeActionOperation.cs +++ b/src/Features/Core/Portable/AddImport/AddProjectReferenceCodeActionOperation.cs @@ -21,6 +21,8 @@ private class AddProjectReferenceCodeActionOperation : CodeActionOperation _toProjectId = toProjectId; } + internal override bool ApplyDuringTests => true; + public override void Apply(Workspace workspace, CancellationToken cancellationToken) { var service = workspace.Services.GetService(); diff --git a/src/Features/Core/Portable/AddImport/IAddImportUndoService.cs b/src/Features/Core/Portable/AddImport/IAddImportUndoService.cs index f48faf22d2d..a4a454271d2 100644 --- a/src/Features/Core/Portable/AddImport/IAddImportUndoService.cs +++ b/src/Features/Core/Portable/AddImport/IAddImportUndoService.cs @@ -20,7 +20,7 @@ internal interface IAddImportUndoService : IWorkspaceService CancellationToken cancellationToken); } - [ExportWorkspaceService(typeof(IWorkspaceService)), Shared] + [ExportWorkspaceService(typeof(IAddImportUndoService)), Shared] internal class DefaultAddImportUndoService : IAddImportUndoService { public bool TryAddMetadataReference( diff --git a/src/Workspaces/Core/Portable/CodeActions/Operations/ApplyChangesOperation.cs b/src/Workspaces/Core/Portable/CodeActions/Operations/ApplyChangesOperation.cs index 4881015228a..4296f397cc0 100644 --- a/src/Workspaces/Core/Portable/CodeActions/Operations/ApplyChangesOperation.cs +++ b/src/Workspaces/Core/Portable/CodeActions/Operations/ApplyChangesOperation.cs @@ -41,6 +41,8 @@ public Solution ChangedSolution get { return _changedSolution; } } + internal override bool ApplyDuringTests => true; + public override void Apply(Workspace workspace, CancellationToken cancellationToken) { this.Apply(workspace, new ProgressTracker(), cancellationToken); -- GitLab