Browse Source

Support installing the latest version of a NuGet package in a project template.

pull/16/merge
Matt Ward 14 years ago
parent
commit
eaa09056da
  1. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageReferenceFile.cs
  2. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageReferenceFile.cs
  3. 4
      src/AddIns/Misc/PackageManagement/Project/Src/PackageReferencesForProject.cs
  4. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageReferenceFile.cs
  5. 10
      src/AddIns/Misc/PackageManagement/Test/Src/PackageReferencesForProjectTests.cs

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageReferenceFile.cs

@ -11,5 +11,6 @@ namespace ICSharpCode.PackageManagement @@ -11,5 +11,6 @@ namespace ICSharpCode.PackageManagement
{
IEnumerable<PackageReference> GetPackageReferences();
void DeleteEntry(string id, Version version);
void Delete();
}
}

10
src/AddIns/Misc/PackageManagement/Project/Src/PackageReferenceFile.cs

@ -3,16 +3,19 @@ @@ -3,16 +3,19 @@
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.PackageManagement
{
public class PackageReferenceFile : IPackageReferenceFile
{
NuGet.PackageReferenceFile file;
string fileName;
public PackageReferenceFile(string fileName)
{
file = new NuGet.PackageReferenceFile(fileName);
this.fileName = fileName;
this.file = new NuGet.PackageReferenceFile(fileName);
}
public IEnumerable<NuGet.PackageReference> GetPackageReferences()
@ -24,5 +27,10 @@ namespace ICSharpCode.PackageManagement @@ -24,5 +27,10 @@ namespace ICSharpCode.PackageManagement
{
file.DeleteEntry(id, version);
}
public void Delete()
{
FileService.RemoveFile(fileName, false);
}
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/PackageReferencesForProject.cs

@ -40,9 +40,7 @@ namespace ICSharpCode.PackageManagement @@ -40,9 +40,7 @@ namespace ICSharpCode.PackageManagement
{
GetPackageReferences();
IPackageReferenceFile file = PackageReferenceFile;
foreach (PackageReference packageReference in packageReferences) {
file.DeleteEntry(packageReference.Id, packageReference.Version);
}
file.Delete();
}
void GetPackageReferences()

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageReferenceFile.cs

@ -30,5 +30,12 @@ namespace PackageManagement.Tests.Helpers @@ -30,5 +30,12 @@ namespace PackageManagement.Tests.Helpers
var packageReference = new PackageReference(id, version);
EntriesDeleted.Add(packageReference);
}
public bool IsDeleteCalled;
public void Delete()
{
IsDeleteCalled = true;
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/PackageReferencesForProjectTests.cs

@ -116,7 +116,7 @@ namespace PackageManagement.Tests @@ -116,7 +116,7 @@ namespace PackageManagement.Tests
}
[Test]
public void RemovePackageReferences_TwoPackageReferencesInPackageConfigFile_RemovesPackageReferenceFromFile()
public void RemovePackageReferences_TwoPackageReferencesInPackageConfigFile_PackageReferenceFileIsDeleted()
{
TestableProject project = CreateProject();
CreatePackageReferencesForProject(project);
@ -125,13 +125,9 @@ namespace PackageManagement.Tests @@ -125,13 +125,9 @@ namespace PackageManagement.Tests
packageReferencesForProject.RemovePackageReferences();
List<PackageReference> packageReferencesRemoved = fakePackageReferenceFile.EntriesDeleted;
bool deleted = fakePackageReferenceFile.IsDeleteCalled;
var expectedPackageReferences = new List<PackageReference>();
expectedPackageReferences.Add(new PackageReference("One", new Version("1.0.3.2")));
expectedPackageReferences.Add(new PackageReference("Two", new Version("2.0.44")));
PackageReferenceCollectionAssertAreEqual(expectedPackageReferences, packageReferencesRemoved);
Assert.IsTrue(deleted);
}
}
}

Loading…
Cancel
Save