Browse Source

Display all package versions in solution when calling Get-Package cmdlet.

pull/53/merge
Matt Ward 13 years ago
parent
commit
1cd9ea9876
  1. 14
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetPackageCmdlet.cs
  2. 18
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetPackageCmdletTests.cs

14
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetPackageCmdlet.cs

@ -77,18 +77,26 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -77,18 +77,26 @@ namespace ICSharpCode.PackageManagement.Cmdlets
protected override void ProcessRecord()
{
ValidateParameters();
IEnumerable<IPackage> packages = GetFilteredPackages();
IEnumerable<IPackage> packages = GetPackagesForDisplay();
WritePackagesToOutputPipeline(packages);
}
IEnumerable<IPackage> GetFilteredPackages()
IEnumerable<IPackage> GetPackagesForDisplay()
{
IQueryable<IPackage> packages = GetPackages();
packages = OrderPackages(packages);
IEnumerable<IPackage> distinctPackages = packages.DistinctLast(PackageEqualityComparer.Id);
IEnumerable<IPackage> distinctPackages = DistinctPackagesById(packages);
return SelectPackageRange(distinctPackages);
}
IEnumerable<IPackage> DistinctPackagesById(IQueryable<IPackage> packages)
{
if (ListAvailable.IsPresent) {
return packages.DistinctLast(PackageEqualityComparer.Id);
}
return packages;
}
void ValidateParameters()
{
if (ParametersRequireProject()) {

18
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetPackageCmdletTests.cs

@ -589,5 +589,23 @@ namespace PackageManagement.Cmdlets.Tests @@ -589,5 +589,23 @@ namespace PackageManagement.Cmdlets.Tests
CollectionAssert.AreEqual(expectedPackages, actualPackages);
}
[Test]
public void ProcessRecord_NoParametersPassedWhenMultipleVersionsOfPackageInstalledInSolution_ReturnsAllPackageVersions()
{
CreateCmdlet();
FakePackage expectedPackage1 = fakeSolution.AddPackageToSharedLocalRepository("One", "1.0");
FakePackage expectedPackage2 = fakeSolution.AddPackageToSharedLocalRepository("One", "1.1");
RunCmdlet();
List<object> actualPackages = fakeCommandRuntime.ObjectsPassedToWriteObject;
var expectedPackages = new FakePackage[] {
expectedPackage1,
expectedPackage2
};
CollectionAssert.AreEqual(expectedPackages, actualPackages);
}
}
}

Loading…
Cancel
Save