From c02032d0e75d73fd077a3795845f03ea9bf7d84b Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Fri, 13 Apr 2012 15:29:15 +0100 Subject: [PATCH] Do not show pre-release NuGet packages in Manage Packages dialog. --- .../Project/Src/AvailablePackagesViewModel.cs | 10 +++----- .../Src/AvailablePackagesViewModelTests.cs | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs b/src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs index d5be42c56c..86876e3a68 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs @@ -43,13 +43,9 @@ namespace ICSharpCode.PackageManagement protected override IEnumerable GetFilteredPackagesBeforePagingResults(IQueryable allPackages) { - IEnumerable filteredPackages = base.GetFilteredPackagesBeforePagingResults(allPackages); - return GetDistinctPackagesById(filteredPackages); - } - - IEnumerable GetDistinctPackagesById(IEnumerable allPackages) - { - return allPackages.DistinctLast(PackageEqualityComparer.Id); + return base.GetFilteredPackagesBeforePagingResults(allPackages) + .Where(package => package.IsReleaseVersion()) + .DistinctLast(PackageEqualityComparer.Id); } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs index 641ebaa8ff..85b8979efc 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/AvailablePackagesViewModelTests.cs @@ -358,5 +358,29 @@ namespace PackageManagement.Tests ApplicationException ex = Assert.Throws(() => CompleteReadPackagesTask()); Assert.AreEqual("Test", ex.Message); } + + [Test] + public void ReadPackages_RepositoryHasPrereleaseAndReleasePackage_HasReleasePackageOnly() + { + CreateViewModel(); + + var releasePackage = new FakePackage("Test", "1.0.0.0"); + var prereleasePackage = new FakePackage("Test", "1.1.0-alpha"); + + var packages = new FakePackage[] { + releasePackage, prereleasePackage + }; + + registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange(packages); + + viewModel.ReadPackages(); + CompleteReadPackagesTask(); + + var expectedPackages = new FakePackage[] { + releasePackage + }; + + PackageCollectionAssert.AreEqual(expectedPackages, viewModel.PackageViewModels); + } } }