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
protected override void ProcessRecord() protected override void ProcessRecord()
{ {
ValidateParameters(); ValidateParameters();
IEnumerable<IPackage> packages = GetFilteredPackages(); IEnumerable<IPackage> packages = GetPackagesForDisplay();
WritePackagesToOutputPipeline(packages); WritePackagesToOutputPipeline(packages);
} }
IEnumerable<IPackage> GetFilteredPackages() IEnumerable<IPackage> GetPackagesForDisplay()
{ {
IQueryable<IPackage> packages = GetPackages(); IQueryable<IPackage> packages = GetPackages();
packages = OrderPackages(packages); packages = OrderPackages(packages);
IEnumerable<IPackage> distinctPackages = packages.DistinctLast(PackageEqualityComparer.Id); IEnumerable<IPackage> distinctPackages = DistinctPackagesById(packages);
return SelectPackageRange(distinctPackages); return SelectPackageRange(distinctPackages);
} }
IEnumerable<IPackage> DistinctPackagesById(IQueryable<IPackage> packages)
{
if (ListAvailable.IsPresent) {
return packages.DistinctLast(PackageEqualityComparer.Id);
}
return packages;
}
void ValidateParameters() void ValidateParameters()
{ {
if (ParametersRequireProject()) { if (ParametersRequireProject()) {

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

@ -589,5 +589,23 @@ namespace PackageManagement.Cmdlets.Tests
CollectionAssert.AreEqual(expectedPackages, actualPackages); 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