From 13de1ecd9a5d94f792898c61adb8bae7975f8991 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Wed, 10 Jul 2013 00:14:20 +0200 Subject: [PATCH] Fix: List of available AddIns might show an older instead of most recent release of a package. --- .../AvailableAddInsViewModelTests.cs | 25 ++++++++++--------- .../Src/ViewModel/NuGetAddInsViewModelBase.cs | 3 ++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs b/src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs index d2df883eff..6f914666de 100644 --- a/src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs +++ b/src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs @@ -225,7 +225,7 @@ namespace ICSharpCode.AddInManager2.Tests CreateAddIns(); _addIn1.Enabled = true; - // Package to be shown in repository + // Packages to be shown in repository FakePackage fakePackage1 = new FakePackage() { Id = _addIn1.Manifest.PrimaryIdentity, @@ -278,12 +278,14 @@ namespace ICSharpCode.AddInManager2.Tests CreateAddIns(); _addIn1.Enabled = true; - // Package to be shown in repository - FakePackage fakePackage2 = new FakePackage() + // Packages to be shown in repository + // To test correct sorting we let the newer release of addIn2 appear before the older one. + FakePackage fakePackage2_new = new FakePackage() { - Id = _addIn2.Manifest.PrimaryIdentity, - Version = new SemanticVersion(_addIn2.Version), - Tags = SharpDevelopAddInTag + Id = _addIn2_new.Manifest.PrimaryIdentity, + Version = new SemanticVersion(_addIn2_new.Version), + Tags = SharpDevelopAddInTag, + DownloadCount = 30 }; FakePackage fakePackage1 = new FakePackage() { @@ -292,12 +294,11 @@ namespace ICSharpCode.AddInManager2.Tests Tags = SharpDevelopAddInTag, DownloadCount = 10 }; - FakePackage fakePackage2_new = new FakePackage() + FakePackage fakePackage2 = new FakePackage() { - Id = _addIn2_new.Manifest.PrimaryIdentity, - Version = new SemanticVersion(_addIn2_new.Version), - Tags = SharpDevelopAddInTag, - DownloadCount = 20 + Id = _addIn2.Manifest.PrimaryIdentity, + Version = new SemanticVersion(_addIn2.Version), + Tags = SharpDevelopAddInTag }; // List of NuGet repositories @@ -308,7 +309,7 @@ namespace ICSharpCode.AddInManager2.Tests List registeredPackageRepositories = new List(); FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository(); remoteRepository.Source = registeredPackageSources[0].Source; - remoteRepository.ReturnedPackages = (new IPackage[] { fakePackage2, fakePackage1, fakePackage2_new }).AsQueryable(); + remoteRepository.ReturnedPackages = (new IPackage[] { fakePackage2_new, fakePackage1, fakePackage2 }).AsQueryable(); _services.FakeRepositories.RegisteredPackageRepositories = registeredPackageRepositories; // PackageRepository service should return remoteRepository instance diff --git a/src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs b/src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs index 37d0d605ae..2a549a9932 100644 --- a/src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs +++ b/src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs @@ -146,7 +146,8 @@ namespace ICSharpCode.AddInManager2.ViewModel private IQueryable OrderPackages(IQueryable packages) { return packages - .OrderBy(package => package.Id); + .OrderBy(package => package.Id) + .ThenBy(package => package.Version); } private IQueryable FilterPackagesBySearchCriteria(IQueryable packages)