Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@xamarin.com>2016-05-09 14:47:17 +0300
committerMatt Ward <matt.ward@xamarin.com>2016-05-09 14:47:17 +0300
commit6c2e80337812e9b24c48129f67c60cca3ba96685 (patch)
treece55ac9ef5d808fc16f8ca7db7e0db88cecae2e4 /main/src/addins/MonoDevelop.PackageManagement
parent6bf242d6e1689414210988c970ed13fdff11c7ae (diff)
[NuGet] Migrate project system tests.
Migrate unit tests that were testing the old NuGet v2 MonoDevelopProjectSystem so they are now testing the new NuGet v3 MonoDevelopMSBuildNuGetProjectSystem class.
Diffstat (limited to 'main/src/addins/MonoDevelop.PackageManagement')
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeDotNetProject.cs1
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetPackageNewImportsHandler.cs4
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProjectContext.cs60
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/ImportAndCondition.cs8
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs32
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj1
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/EnsureNuGetPackageBuildImportsTargetUpdaterTests.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MSBuildProjectExtensionsTests.cs6
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MonoDevelopProjectSystemTests.cs149
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/INuGetPackageNewImportsHandler.cs4
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MSBuildProjectExtensions.cs8
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopMSBuildNuGetProjectSystem.cs57
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopProjectSystem.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/NuGetPackageNewImportsHandler.cs6
14 files changed, 181 insertions, 159 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeDotNetProject.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeDotNetProject.cs
index 7bb4c0cb71..d7b39224f2 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeDotNetProject.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeDotNetProject.cs
@@ -49,6 +49,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
{
References = new ProjectReferenceCollection ();
Files = new ProjectFileCollection ();
+ TargetFrameworkMoniker = new TargetFrameworkMoniker ("v4.5");
CreateEqualsAction ();
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetPackageNewImportsHandler.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetPackageNewImportsHandler.cs
index ac2a71ea6a..eb140bb14a 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetPackageNewImportsHandler.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetPackageNewImportsHandler.cs
@@ -25,7 +25,7 @@
// THE SOFTWARE.
using System.Collections.Generic;
-using NuGet;
+using NuGet.ProjectManagement;
namespace MonoDevelop.PackageManagement.Tests.Helpers
{
@@ -34,7 +34,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public bool IsDisposed;
public List<ImportAndCondition> ImportsAdded = new List<ImportAndCondition> ();
- public void AddImportIfMissing (string name, string condition, ProjectImportLocation location)
+ public void AddImportIfMissing (string name, string condition, ImportLocation location)
{
ImportsAdded.Add (new ImportAndCondition (name, condition, location));
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProjectContext.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProjectContext.cs
new file mode 100644
index 0000000000..34cc7c2016
--- /dev/null
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProjectContext.cs
@@ -0,0 +1,60 @@
+//
+// FakeNuGetProjectContext.cs
+//
+// Author:
+// Matt Ward <matt.ward@xamarin.com>
+//
+// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Xml.Linq;
+using NuGet.Packaging;
+using NuGet.ProjectManagement;
+
+namespace MonoDevelop.PackageManagement.Tests.Helpers
+{
+ public class FakeNuGetProjectContext : INuGetProjectContext
+ {
+ public ExecutionContext ExecutionContext { get; set; }
+
+ public XDocument OriginalPackagesConfig { get; set; }
+
+ public PackageExtractionContext PackageExtractionContext { get; set; }
+
+ public ISourceControlManagerProvider SourceControlManagerProvider {
+ get { return null; }
+ }
+
+ public void Log (MessageLevel level, string message, params object [] args)
+ {
+ }
+
+ public void ReportError (string message)
+ {
+ }
+
+ public FileConflictAction ResolveFileConflict (string message)
+ {
+ return FileConflictAction.Ignore;
+ }
+ }
+}
+
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/ImportAndCondition.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/ImportAndCondition.cs
index c073ef5e2e..be148fe555 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/ImportAndCondition.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/ImportAndCondition.cs
@@ -24,18 +24,18 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
-using NuGet;
+using NuGet.ProjectManagement;
namespace MonoDevelop.PackageManagement.Tests.Helpers
{
public class ImportAndCondition
{
public ImportAndCondition (string name, string condition)
- : this (name, condition, ProjectImportLocation.Bottom)
+ : this (name, condition, ImportLocation.Bottom)
{
}
- public ImportAndCondition (string name, string condition, ProjectImportLocation location)
+ public ImportAndCondition (string name, string condition, ImportLocation location)
{
Name = name;
Condition = condition;
@@ -44,7 +44,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public string Name { get; set; }
public string Condition { get; set; }
- public ProjectImportLocation Location { get; set; }
+ public ImportLocation Location { get; set; }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs
index 145b665048..e5c6bdf939 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs
@@ -26,21 +26,17 @@
using System;
using System.IO;
-using MonoDevelop.PackageManagement;
-using MonoDevelop.Ide;
using System.Threading.Tasks;
namespace MonoDevelop.PackageManagement.Tests.Helpers
{
- class TestableMonoDevelopProjectSystem : MonoDevelopProjectSystem
+ class TestableMonoDevelopProjectSystem : MonoDevelopMSBuildNuGetProjectSystem
{
public string PathPassedToPhysicalFileSystemAddFile;
public Stream StreamPassedToPhysicalFileSystemAddFile;
- public Action<Stream> ActionPassedToPhysicalFileSystemAddFile;
public FakeFileService FakeFileService;
public FakePackageManagementProjectService FakeProjectService;
public PackageManagementEvents PackageManagementEvents;
- public FakeLogger FakeLogger;
public string FileNamePassedToLogDeletedFile;
public FileNameAndDirectory FileNameAndDirectoryPassedToLogDeletedFileFromDirectory;
public string DirectoryPassedToLogDeletedDirectory;
@@ -48,6 +44,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public ReferenceAndProjectName ReferenceAndProjectNamePassedToLogRemovedReferenceFromProject;
public FileNameAndProjectName FileNameAndProjectNamePassedToLogAddedFileToProject;
public FakeNuGetPackageNewImportsHandler NewImportsHandler;
+ public FakeNuGetProjectContext FakeNuGetProjectContext;
public static Action<Action> GuiSyncDispatcher = handler => handler.Invoke ();
public static Func<Func<Task>,Task> GuiSyncDispatcherFunc = handler => handler.Invoke();
@@ -55,25 +52,22 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public TestableMonoDevelopProjectSystem (IDotNetProject project)
: this (
project,
+ new FakeNuGetProjectContext (),
new FakeFileService (project),
- new FakePackageManagementProjectService (),
- new PackageManagementEvents (),
- new FakeLogger ())
+ new PackageManagementEvents ())
{
}
TestableMonoDevelopProjectSystem (
IDotNetProject project,
+ FakeNuGetProjectContext context,
IPackageManagementFileService fileService,
- IPackageManagementProjectService projectService,
- PackageManagementEvents packageManagementEvents,
- FakeLogger logger)
- : base (project, fileService, projectService, packageManagementEvents, GuiSyncDispatcher, GuiSyncDispatcherFunc)
+ PackageManagementEvents packageManagementEvents)
+ : base (project, context, fileService, packageManagementEvents, GuiSyncDispatcher, GuiSyncDispatcherFunc)
{
+ FakeNuGetProjectContext = context;
FakeFileService = (FakeFileService)fileService;
- FakeProjectService = (FakePackageManagementProjectService)projectService;
PackageManagementEvents = packageManagementEvents;
- Logger = logger;
}
protected override void PhysicalFileSystemAddFile (string path, Stream stream)
@@ -82,12 +76,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
StreamPassedToPhysicalFileSystemAddFile = stream;
}
- protected override void PhysicalFileSystemAddFile (string path, Action<Stream> writeToStream)
- {
- PathPassedToPhysicalFileSystemAddFile = path;
- ActionPassedToPhysicalFileSystemAddFile = writeToStream;
- }
-
protected override void LogDeletedFile (string fileName)
{
FileNamePassedToLogDeletedFile = fileName;
@@ -98,9 +86,9 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
FileNameAndDirectoryPassedToLogDeletedFileFromDirectory = new FileNameAndDirectory (fileName, directory);
}
- protected override void LogDeletedDirectory (string directory)
+ protected override void LogDeletedDirectory (string folder)
{
- DirectoryPassedToLogDeletedDirectory = directory;
+ DirectoryPassedToLogDeletedDirectory = folder;
}
protected override void LogAddedReferenceToProject (string referenceName, string projectName)
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
index 231603416f..96fc68f43c 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
@@ -248,6 +248,7 @@
<Compile Include="MonoDevelop.PackageManagement.Tests\TestableInstrumentationService.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeNuGetPackageAction.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeNuGetProjectAction.cs" />
+ <Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeNuGetProjectContext.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/EnsureNuGetPackageBuildImportsTargetUpdaterTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/EnsureNuGetPackageBuildImportsTargetUpdaterTests.cs
index 10d81693ac..76db78e22c 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/EnsureNuGetPackageBuildImportsTargetUpdaterTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/EnsureNuGetPackageBuildImportsTargetUpdaterTests.cs
@@ -77,7 +77,6 @@ namespace MonoDevelop.PackageManagement.Tests
SaveProject ();
- MSBuildTarget target = msbuildProject.Targets.FirstOrDefault ();
Assert.AreEqual (1, targetCountBeforeSave);
Assert.AreEqual (0, msbuildProject.Targets.Count ());
}
@@ -100,7 +99,6 @@ namespace MonoDevelop.PackageManagement.Tests
SaveProject ();
- MSBuildTarget target = msbuildProject.Targets.FirstOrDefault ();
Assert.AreEqual (1, targetCountBeforeSave);
Assert.AreEqual (0, msbuildProject.Targets.Count ());
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MSBuildProjectExtensionsTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MSBuildProjectExtensionsTests.cs
index 59ed4dd6da..070de63866 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MSBuildProjectExtensionsTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MSBuildProjectExtensionsTests.cs
@@ -3,7 +3,7 @@ using System;
using System.Xml;
using MonoDevelop.PackageManagement;
using MonoDevelop.Projects.MSBuild;
-using NuGet;
+using NuGet.ProjectManagement;
using NUnit.Framework;
using System.Linq;
@@ -21,12 +21,12 @@ namespace MonoDevelop.PackageManagement.Tests
void AddImportIfMissingAtBottom (string importFile, string condition = "")
{
- project.AddImportIfMissing (importFile, ProjectImportLocation.Bottom, condition);
+ project.AddImportIfMissing (importFile, ImportLocation.Bottom, condition);
}
void AddImportIfMissingAtTop (string importFile, string condition = "")
{
- project.AddImportIfMissing (importFile, ProjectImportLocation.Top, condition);
+ project.AddImportIfMissing (importFile, ImportLocation.Top, condition);
}
void AssertLastMSBuildImportElementHasProjectAttributeValue (string expectedAttributeValue)
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MonoDevelopProjectSystemTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MonoDevelopProjectSystemTests.cs
index 0fa66464e2..f2dff69aa6 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MonoDevelopProjectSystemTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/MonoDevelopProjectSystemTests.cs
@@ -1,5 +1,5 @@
//
-// MonoDevelopProjectSystemTests.cs
+// MonoDevelopMSBuildNuGetProjectSystemTests.cs
//
// Author:
// Matt Ward <matt.ward@xamarin.com>
@@ -28,31 +28,30 @@ using System;
using System.IO;
using System.Linq;
using System.Runtime.Versioning;
-using MonoDevelop.PackageManagement;
using MonoDevelop.Core;
using MonoDevelop.Core.Assemblies;
using MonoDevelop.PackageManagement.Tests.Helpers;
using MonoDevelop.Projects;
using MonoDevelop.Projects.MSBuild;
-using NuGet;
+using NuGet.ProjectManagement;
using NUnit.Framework;
namespace MonoDevelop.PackageManagement.Tests
{
[TestFixture]
- public class MonoDevelopProjectSystemTests
+ public class MonoDevelopMSBuildNuGetProjectSystemTests
{
TestableMonoDevelopProjectSystem projectSystem;
FakeDotNetProject project;
- void CreateProjectSystem (IDotNetProject project)
+ void CreateProjectSystem (IDotNetProject dotNetProject)
{
- projectSystem = new TestableMonoDevelopProjectSystem (project);
+ projectSystem = new TestableMonoDevelopProjectSystem (dotNetProject);
}
void CreateTestProject ()
{
- project = new FakeDotNetProject ();
+ project = new FakeDotNetProject (@"d:\Projects\Test\MyProject.csproj");
}
void CreateTestWebApplicationProject ()
@@ -97,7 +96,7 @@ namespace MonoDevelop.PackageManagement.Tests
Assert.AreEqual (expectedCondition, import.Condition);
}
- void AssertLastImportHasImportLocation (ProjectImportLocation expectedLocation)
+ void AssertLastImportHasImportLocation (ImportLocation expectedLocation)
{
ImportAndCondition import = projectSystem.NewImportsHandler.ImportsAdded.Last ();
Assert.AreEqual (expectedLocation, import.Location);
@@ -115,7 +114,7 @@ namespace MonoDevelop.PackageManagement.Tests
Assert.AreEqual (expectedCondition, import.Condition);
}
- void AssertFirstImportHasImportLocation (ProjectImportLocation expectedLocation)
+ void AssertFirstImportHasImportLocation (ImportLocation expectedLocation)
{
ImportAndCondition import = projectSystem.NewImportsHandler.ImportsAdded.First ();
Assert.AreEqual (expectedLocation, import.Location);
@@ -139,8 +138,8 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject.csproj");
CreateProjectSystem (project);
- string expectedRoot = @"d:\projects\MyProject\".ToNativePath ();
- Assert.AreEqual (expectedRoot, projectSystem.Root);
+ string expectedRoot = @"d:\projects\MyProject".ToNativePath ();
+ Assert.AreEqual (expectedRoot, projectSystem.ProjectFullPath);
}
[Test]
@@ -189,7 +188,7 @@ namespace MonoDevelop.PackageManagement.Tests
FrameworkName expectedName = new FrameworkName (".NETFramework, Version=v4.0");
- Assert.AreEqual (expectedName, projectSystem.TargetFramework);
+ Assert.AreEqual (expectedName.ToString (), projectSystem.TargetFramework.ToString ());
}
[Test]
@@ -201,7 +200,7 @@ namespace MonoDevelop.PackageManagement.Tests
FrameworkName expectedName = new FrameworkName (".NETFramework, Profile=Client, Version=v3.5");
- Assert.AreEqual (expectedName, projectSystem.TargetFramework);
+ Assert.AreEqual (expectedName.ToString (), projectSystem.TargetFramework.ToString ());
}
[Test]
@@ -213,7 +212,7 @@ namespace MonoDevelop.PackageManagement.Tests
FrameworkName expectedName = new FrameworkName ("Silverlight, Version=v2.0");
- Assert.AreEqual (expectedName, projectSystem.TargetFramework);
+ Assert.AreEqual (expectedName.ToString (), projectSystem.TargetFramework.ToString ());
}
[Test]
@@ -397,7 +396,7 @@ namespace MonoDevelop.PackageManagement.Tests
project.IsSaved = false;
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll".ToNativePath ();
- projectSystem.AddReference (fileName, null);
+ projectSystem.AddReference (fileName);
Assert.AreEqual (1, project.ReferencesWhenSavedCount);
}
@@ -410,7 +409,7 @@ namespace MonoDevelop.PackageManagement.Tests
project.IsSaved = false;
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll".ToNativePath ();
- projectSystem.AddReference (fileName, null);
+ projectSystem.AddReference (fileName);
ProjectReference actualReference = project.References [0];
Assert.AreEqual ("nunit.framework", actualReference.Reference);
@@ -425,7 +424,7 @@ namespace MonoDevelop.PackageManagement.Tests
project.IsSaved = false;
string relativeFileName = @"packages\nunit\nunit.framework.dll".ToNativePath ();
string fullFileName = @"d:\projects\MyProject\packages\nunit\nunit.framework.dll".ToNativePath ();
- projectSystem.AddReference (relativeFileName, null);
+ projectSystem.AddReference (relativeFileName);
ProjectReference actualReference = project.References [0];
Assert.AreEqual ("nunit.framework", actualReference.Reference);
@@ -440,7 +439,7 @@ namespace MonoDevelop.PackageManagement.Tests
project.Name = "MyTestProject";
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll".ToNativePath ();
- projectSystem.AddReference (fileName, null);
+ projectSystem.AddReference (fileName);
var expectedReferenceAndProjectName = new ReferenceAndProjectName () {
Reference = "nunit.framework",
@@ -691,62 +690,62 @@ namespace MonoDevelop.PackageManagement.Tests
}
[Test]
- public void DeleteFile_DeletesFileFromFileSystem_CallsFileServiceRemoveFile ()
+ public void RemoveFile_DeletesFileFromFileSystem_CallsFileServiceRemoveFile ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
AddFileToProject (@"d:\temp\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile ("test.cs");
+ projectSystem.RemoveFile ("test.cs");
Assert.AreEqual (@"d:\temp\test.cs".ToNativePath (), projectSystem.FakeFileService.PathPassedToRemoveFile);
}
[Test]
- public void DeleteFile_DeletesFileFromFileSystem_ProjectIsSavedAfterFileRemoved ()
+ public void RemoveFile_DeletesFileFromFileSystem_ProjectIsSavedAfterFileRemoved ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
project.IsSaved = false;
AddFileToProject (@"d:\temp\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile ("test.cs");
+ projectSystem.RemoveFile ("test.cs");
Assert.AreEqual (0, project.FilesInProjectWhenSavedCount);
}
[Test]
- public void DeleteFile_DeletesFileFromFileSystem_FileDeletionLogged ()
+ public void RemoveFile_DeletesFileFromFileSystem_FileDeletionLogged ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
AddFileToProject (@"d:\temp\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile ("test.cs");
+ projectSystem.RemoveFile ("test.cs");
Assert.AreEqual ("test.cs", projectSystem.FileNamePassedToLogDeletedFile);
}
[Test]
- public void DeleteFile_DeletesFileFromFileSystem_FolderInformationNotLogged ()
+ public void RemoveFile_DeletesFileFromFileSystem_FolderInformationNotLogged ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
AddFileToProject (@"d:\temp\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile ("test.cs");
+ projectSystem.RemoveFile ("test.cs");
Assert.IsNull (projectSystem.FileNameAndDirectoryPassedToLogDeletedFileFromDirectory);
}
[Test]
- public void DeleteFile_DeletesFileFromSubFolder_FileDeletionLogged ()
+ public void RemoveFile_DeletesFileFromSubFolder_FileDeletionLogged ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
AddFileToProject (@"d:\temp\src\Files\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile (@"src\Files\test.cs".ToNativePath ());
+ projectSystem.RemoveFile (@"src\Files\test.cs".ToNativePath ());
var expectedFileNameAndFolder = new FileNameAndDirectory () {
FileName = "test.cs",
@@ -759,13 +758,13 @@ namespace MonoDevelop.PackageManagement.Tests
}
[Test]
- public void DeleteFile_DeletesFileFromSubFolder_FileDeletionWithoutFolderInformationIsNotLogged ()
+ public void RemoveFile_DeletesFileFromSubFolder_FileDeletionWithoutFolderInformationIsNotLogged ()
{
CreateTestProject (@"d:\temp\MyProject.csproj");
AddFileToProject (@"d:\temp\src\Files\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteFile (@"src\Files\test.cs".ToNativePath ());
+ projectSystem.RemoveFile (@"src\Files\test.cs".ToNativePath ());
Assert.IsNull (projectSystem.FileNamePassedToLogDeletedFile);
}
@@ -777,7 +776,7 @@ namespace MonoDevelop.PackageManagement.Tests
AddFileToProject (@"d:\temp\test\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteDirectory ("test");
+ projectSystem.DeleteDirectory ("test", false);
string path = @"d:\temp\test".ToNativePath ();
Assert.AreEqual (path, projectSystem.FakeFileService.PathPassedToRemoveDirectory);
@@ -791,7 +790,7 @@ namespace MonoDevelop.PackageManagement.Tests
AddFileToProject (@"d:\temp\test\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteDirectory ("test");
+ projectSystem.DeleteDirectory ("test", false);
Assert.AreEqual (0, project.FilesInProjectWhenSavedCount);
Assert.IsTrue (project.IsSaved);
@@ -805,7 +804,7 @@ namespace MonoDevelop.PackageManagement.Tests
AddFileToProject (@"d:\temp\test\test.cs");
CreateProjectSystem (project);
- projectSystem.DeleteDirectory ("test");
+ projectSystem.DeleteDirectory ("test", false);
Assert.AreEqual ("test", projectSystem.DirectoryPassedToLogDeletedDirectory);
}
@@ -908,10 +907,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
AssertLastMSBuildChildElementHasProjectAttributeValue (@"..\packages\Foo.0.1\build\Foo.targets");
- AssertLastImportHasImportLocation (ProjectImportLocation.Bottom);
+ AssertLastImportHasImportLocation (ImportLocation.Bottom);
}
[Test]
@@ -921,10 +920,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
AssertLastMSBuildChildElementHasProjectAttributeValue (@"packages\Foo.0.1\build\Foo.targets");
- AssertLastImportHasImportLocation (ProjectImportLocation.Bottom);
+ AssertLastImportHasImportLocation (ImportLocation.Bottom);
}
[Test]
@@ -934,10 +933,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
AssertLastImportHasCondition ("Exists('..\\packages\\Foo.0.1\\build\\Foo.targets')");
- AssertLastImportHasImportLocation (ProjectImportLocation.Bottom);
+ AssertLastImportHasImportLocation (ImportLocation.Bottom);
}
[Test]
@@ -947,10 +946,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
}
@@ -962,10 +961,10 @@ namespace MonoDevelop.PackageManagement.Tests
string targetPath1 = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
string targetPath2 = @"d:\projects\MyProject\packages\Foo.0.1\BUILD\FOO.TARGETS".ToNativePath ();
- projectSystem.AddImport (targetPath1, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath1, ImportLocation.Bottom);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
- projectSystem.AddImport (targetPath2, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath2, ImportLocation.Bottom);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
}
@@ -976,7 +975,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
Assert.IsTrue (project.IsSaved);
}
@@ -987,7 +986,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
projectSystem.RemoveImport (targetPath);
@@ -1000,7 +999,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath1 = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath1, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath1, ImportLocation.Bottom);
string targetPath2 = @"d:\projects\MyProject\packages\Foo.0.1\BUILD\FOO.TARGETS".ToNativePath ();
projectSystem.RemoveImport (targetPath2);
@@ -1027,10 +1026,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Top);
+ projectSystem.AddImport (targetPath, ImportLocation.Top);
AssertFirstMSBuildChildElementHasProjectAttributeValue (@"..\packages\Foo.0.1\build\Foo.targets");
- AssertFirstImportHasImportLocation (ProjectImportLocation.Top);
+ AssertFirstImportHasImportLocation (ImportLocation.Top);
}
[Test]
@@ -1040,10 +1039,10 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Top);
+ projectSystem.AddImport (targetPath, ImportLocation.Top);
AssertFirstImportHasCondition ("Exists('..\\packages\\Foo.0.1\\build\\Foo.targets')");
- AssertFirstImportHasImportLocation (ProjectImportLocation.Top);
+ AssertFirstImportHasImportLocation (ImportLocation.Top);
}
[Test]
@@ -1053,49 +1052,15 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Top);
+ projectSystem.AddImport (targetPath, ImportLocation.Top);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
- projectSystem.AddImport (targetPath, ProjectImportLocation.Top);
+ projectSystem.AddImport (targetPath, ImportLocation.Top);
Assert.AreEqual (1, projectSystem.NewImportsHandler.ImportsAdded.Count);
}
[Test]
- public void AddFile_NewFileAddedWithAction_AddsFileToFileSystem ()
- {
- CreateTestProject ();
- CreateProjectSystem (project);
-
- string expectedPath = @"d:\temp\abc.cs".ToNativePath ();
- Action<Stream> expectedAction = stream => {
- };
- projectSystem.AddFile (expectedPath, expectedAction);
-
- Assert.AreEqual (expectedPath, projectSystem.PathPassedToPhysicalFileSystemAddFile);
- Assert.AreEqual (expectedAction, projectSystem.ActionPassedToPhysicalFileSystemAddFile);
- }
-
- [Test]
- public void AddFile_NewFileAddedWithAction_AddsFileToProject ()
- {
- CreateTestProject (@"d:\projects\MyProject\MyProject.csproj");
- string fileName = @"d:\projects\MyProject\src\NewFile.cs".ToNativePath ();
- project.AddDefaultBuildAction (BuildAction.Compile, fileName);
- CreateProjectSystem (project);
-
- Action<Stream> action = stream => {
- };
- projectSystem.AddFile (fileName, action);
-
- ProjectFile fileItem = ProjectHelper.GetFile (project, fileName);
- var expectedFileName = new FilePath (fileName);
-
- Assert.AreEqual (expectedFileName, fileItem.FilePath);
- Assert.AreEqual (BuildAction.Compile, fileItem.BuildAction);
- }
-
- [Test]
public void ReferenceExists_ReferenceIsInProjectButIncludesAssemblyVersion_ReturnsTrue ()
{
CreateTestProject ();
@@ -1130,7 +1095,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
string expectedImportRemoved = @"..\packages\Foo.0.1\build\Foo.targets";
projectSystem.RemoveImport (targetPath.ToNativePath ());
@@ -1146,7 +1111,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
projectSystem.RemoveImport (targetPath);
@@ -1159,7 +1124,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
const string expectedImportRemoved = @"..\packages\Foo.0.1\build\Foo.targets";
DotNetProjectImportEventArgs eventArgs = null;
projectSystem.PackageManagementEvents.ImportRemoved += (sender, e) => {
@@ -1180,7 +1145,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateTestProject (@"d:\projects\MyProject\MyProject.csproj");
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
MSBuildProject msbuildProject = CreateMSBuildProject (
"<Project ToolsVersion=\"12.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n" +
" <Target Name=\"EnsureNuGetPackageBuildImports\" BeforeTargets=\"PrepareForBuild\">\r\n" +
@@ -1214,7 +1179,7 @@ namespace MonoDevelop.PackageManagement.Tests
};
string fileName = @"d:\projects\packages\nunit\nunit.framework.dll".ToNativePath ();
- projectSystem.AddReference (fileName, null);
+ projectSystem.AddReference (fileName);
Assert.AreEqual (fileName, referenceBeingAdded.HintPath.ToString ());
Assert.IsTrue (referenceBeingAdded.LocalCopy);
@@ -1247,7 +1212,7 @@ namespace MonoDevelop.PackageManagement.Tests
CreateProjectSystem (project);
string targetPath = @"d:\projects\MyProject\packages\Foo.0.1\build\Foo.targets".ToNativePath ();
- projectSystem.AddImport (targetPath, ProjectImportLocation.Bottom);
+ projectSystem.AddImport (targetPath, ImportLocation.Bottom);
Assert.IsTrue (projectSystem.NewImportsHandler.IsDisposed);
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/INuGetPackageNewImportsHandler.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/INuGetPackageNewImportsHandler.cs
index 766d06270b..3a0f47ff83 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/INuGetPackageNewImportsHandler.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/INuGetPackageNewImportsHandler.cs
@@ -25,13 +25,13 @@
// THE SOFTWARE.
using System;
-using NuGet;
+using NuGet.ProjectManagement;
namespace MonoDevelop.PackageManagement
{
internal interface INuGetPackageNewImportsHandler : IDisposable
{
- void AddImportIfMissing (string name, string condition, ProjectImportLocation location);
+ void AddImportIfMissing (string name, string condition, ImportLocation location);
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MSBuildProjectExtensions.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MSBuildProjectExtensions.cs
index 48b81b69ba..0012f52cfe 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MSBuildProjectExtensions.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MSBuildProjectExtensions.cs
@@ -32,7 +32,7 @@ using System.Linq;
using System.Xml;
using MonoDevelop.Projects.MSBuild;
-using NuGet;
+using NuGet.ProjectManagement;
namespace MonoDevelop.PackageManagement
{
@@ -49,7 +49,7 @@ namespace MonoDevelop.PackageManagement
public static void AddImportIfMissing (
this MSBuildProject project,
string importedProjectFile,
- ProjectImportLocation importLocation,
+ ImportLocation importLocation,
string condition)
{
if (project.ImportExists (importedProjectFile))
@@ -61,10 +61,10 @@ namespace MonoDevelop.PackageManagement
public static void AddImport (
this MSBuildProject project,
string importedProjectFile,
- ProjectImportLocation importLocation,
+ ImportLocation importLocation,
string condition)
{
- var before = importLocation == ProjectImportLocation.Top ? project.GetAllObjects ().FirstOrDefault () : null;
+ var before = importLocation == ImportLocation.Top ? project.GetAllObjects ().FirstOrDefault () : null;
project.AddNewImport (importedProjectFile, condition, before);
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopMSBuildNuGetProjectSystem.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopMSBuildNuGetProjectSystem.cs
index a8059603b4..a53421b30a 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopMSBuildNuGetProjectSystem.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopMSBuildNuGetProjectSystem.cs
@@ -39,7 +39,7 @@ namespace MonoDevelop.PackageManagement
{
internal class MonoDevelopMSBuildNuGetProjectSystem : IMSBuildNuGetProjectSystem
{
- DotNetProject project;
+ IDotNetProject project;
NuGetFramework targetFramework;
string projectFullPath;
IPackageManagementEvents packageManagementEvents;
@@ -48,14 +48,30 @@ namespace MonoDevelop.PackageManagement
Func<Func<Task>,Task> guiSyncDispatcherFunc;
public MonoDevelopMSBuildNuGetProjectSystem (DotNetProject project, INuGetProjectContext context)
+ : this (
+ new DotNetProjectProxy (project),
+ context,
+ new PackageManagementFileService (),
+ PackageManagementServices.PackageManagementEvents,
+ DefaultGuiSyncDispatcher,
+ GuiSyncDispatchWithException)
+ {
+ }
+
+ public MonoDevelopMSBuildNuGetProjectSystem (
+ IDotNetProject project,
+ INuGetProjectContext context,
+ IPackageManagementFileService fileService,
+ IPackageManagementEvents packageManagementEvents,
+ Action<Action> guiSyncDispatcher,
+ Func<Func<Task>, Task> guiSyncDispatcherFunc)
{
this.project = project;
NuGetProjectContext = context;
- guiSyncDispatcher = DefaultGuiSyncDispatcher;
- guiSyncDispatcherFunc = GuiSyncDispatchWithException;
-
- packageManagementEvents = PackageManagementServices.PackageManagementEvents;
- fileService = new PackageManagementFileService ();
+ this.fileService = fileService;
+ this.packageManagementEvents = packageManagementEvents;
+ this.guiSyncDispatcher = guiSyncDispatcher;
+ this.guiSyncDispatcherFunc = guiSyncDispatcherFunc;
}
public INuGetProjectContext NuGetProjectContext { get; private set; }
@@ -90,7 +106,7 @@ namespace MonoDevelop.PackageManagement
NuGetFramework GetTargetFramework()
{
- var projectTargetFramework = new ProjectTargetFramework (new DotNetProjectProxy (project));
+ var projectTargetFramework = new ProjectTargetFramework (project);
return NuGetFramework.Parse (projectTargetFramework.TargetFrameworkName.FullName);
}
@@ -143,7 +159,7 @@ namespace MonoDevelop.PackageManagement
{
ProjectFile fileItem = CreateFileProjectItem (path);
project.AddFile (fileItem);
- await SaveAsync (project);
+ await project.SaveAsync ();
}
ProjectFile CreateFileProjectItem(string path)
@@ -185,8 +201,8 @@ namespace MonoDevelop.PackageManagement
string relativeTargetPath = GetRelativePath (targetFullPath);
string condition = GetCondition (relativeTargetPath);
using (var handler = CreateNewImportsHandler ()) {
- handler.AddImportIfMissing (relativeTargetPath, condition, (NuGet.ProjectImportLocation)location);
- await SaveAsync (project);
+ handler.AddImportIfMissing (relativeTargetPath, condition, location);
+ await project.SaveAsync ();
}
});
}
@@ -229,7 +245,7 @@ namespace MonoDevelop.PackageManagement
async Task AddReferenceToProject (ProjectReference assemblyReference)
{
project.References.Add (assemblyReference);
- await SaveAsync (project);
+ await project.SaveAsync ();
LogAddedReferenceToProject (assemblyReference);
}
@@ -258,7 +274,7 @@ namespace MonoDevelop.PackageManagement
GuiSyncDispatch (async () => {
string directory = GetFullPath (path);
fileService.RemoveDirectory (directory);
- await SaveAsync (project);
+ await project.SaveAsync ();
LogDeletedDirectory (path);
});
}
@@ -331,7 +347,7 @@ namespace MonoDevelop.PackageManagement
public bool IsSupportedFile (string path)
{
return GuiSyncDispatch (() => {
- if (new DotNetProjectProxy (project).IsWebProject ()) {
+ if (project.IsWebProject ()) {
return !IsAppConfigFile (path);
}
return !IsWebConfigFile (path);
@@ -420,7 +436,7 @@ namespace MonoDevelop.PackageManagement
string fileName = GetFullPath (path);
project.Files.Remove (fileName);
fileService.RemoveFile (fileName);
- await SaveAsync (project);
+ await project.SaveAsync ();
LogDeletedFileInfo (path);
});
}
@@ -455,10 +471,10 @@ namespace MonoDevelop.PackageManagement
using (var updater = new EnsureNuGetPackageBuildImportsTargetUpdater ()) {
updater.RemoveImport (relativeTargetPath);
- await SaveAsync (project);
+ await project.SaveAsync ();
}
- packageManagementEvents.OnImportRemoved (new DotNetProjectProxy (project), relativeTargetPath);
+ packageManagementEvents.OnImportRemoved (project, relativeTargetPath);
});
}
@@ -478,7 +494,7 @@ namespace MonoDevelop.PackageManagement
if (referenceProjectItem != null) {
packageManagementEvents.OnReferenceRemoving (referenceProjectItem);
project.References.Remove (referenceProjectItem);
- await SaveAsync (project);
+ await project.SaveAsync ();
LogRemovedReferenceFromProject (referenceProjectItem);
}
});
@@ -532,13 +548,6 @@ namespace MonoDevelop.PackageManagement
{
guiSyncDispatcherFunc (func).Wait ();
}
-
- static async Task SaveAsync (DotNetProject project)
- {
- using (var monitor = new ProgressMonitor ()) {
- await project.SaveAsync (monitor);
- }
- }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopProjectSystem.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopProjectSystem.cs
index 2679c57a95..bf19c622e7 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopProjectSystem.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/MonoDevelopProjectSystem.cs
@@ -408,7 +408,7 @@ namespace MonoDevelop.PackageManagement
string relativeTargetPath = GetRelativePath (targetPath);
string condition = GetCondition (relativeTargetPath);
using (var handler = CreateNewImportsHandler ()) {
- handler.AddImportIfMissing (relativeTargetPath, condition, location);
+ handler.AddImportIfMissing (relativeTargetPath, condition, (NuGet.ProjectManagement.ImportLocation)location);
await project.SaveAsync ();
}
});
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/NuGetPackageNewImportsHandler.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/NuGetPackageNewImportsHandler.cs
index ba687b81a1..32189b89df 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/NuGetPackageNewImportsHandler.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/NuGetPackageNewImportsHandler.cs
@@ -26,7 +26,7 @@
using System;
using MonoDevelop.Projects.MSBuild;
-using NuGet;
+using NuGet.ProjectManagement;
namespace MonoDevelop.PackageManagement
{
@@ -34,7 +34,7 @@ namespace MonoDevelop.PackageManagement
{
string name;
string condition;
- ProjectImportLocation location;
+ ImportLocation location;
public NuGetPackageNewImportsHandler ()
{
@@ -46,7 +46,7 @@ namespace MonoDevelop.PackageManagement
PackageManagementMSBuildExtension.NewImportsHandler = null;
}
- public void AddImportIfMissing (string name, string condition, ProjectImportLocation location)
+ public void AddImportIfMissing (string name, string condition, ImportLocation location)
{
this.name = name;
this.condition = condition;