Browse Source

Fix: List of available AddIns might show an older instead of most recent release of a package.

pull/48/head
Andreas Weizel 12 years ago
parent
commit
13de1ecd9a
  1. 25
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs
  2. 3
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

25
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/AvailableAddInsViewModelTests.cs

@ -225,7 +225,7 @@ namespace ICSharpCode.AddInManager2.Tests
CreateAddIns(); CreateAddIns();
_addIn1.Enabled = true; _addIn1.Enabled = true;
// Package to be shown in repository // Packages to be shown in repository
FakePackage fakePackage1 = new FakePackage() FakePackage fakePackage1 = new FakePackage()
{ {
Id = _addIn1.Manifest.PrimaryIdentity, Id = _addIn1.Manifest.PrimaryIdentity,
@ -278,12 +278,14 @@ namespace ICSharpCode.AddInManager2.Tests
CreateAddIns(); CreateAddIns();
_addIn1.Enabled = true; _addIn1.Enabled = true;
// Package to be shown in repository // Packages to be shown in repository
FakePackage fakePackage2 = new FakePackage() // 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, Id = _addIn2_new.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2.Version), Version = new SemanticVersion(_addIn2_new.Version),
Tags = SharpDevelopAddInTag Tags = SharpDevelopAddInTag,
DownloadCount = 30
}; };
FakePackage fakePackage1 = new FakePackage() FakePackage fakePackage1 = new FakePackage()
{ {
@ -292,12 +294,11 @@ namespace ICSharpCode.AddInManager2.Tests
Tags = SharpDevelopAddInTag, Tags = SharpDevelopAddInTag,
DownloadCount = 10 DownloadCount = 10
}; };
FakePackage fakePackage2_new = new FakePackage() FakePackage fakePackage2 = new FakePackage()
{ {
Id = _addIn2_new.Manifest.PrimaryIdentity, Id = _addIn2.Manifest.PrimaryIdentity,
Version = new SemanticVersion(_addIn2_new.Version), Version = new SemanticVersion(_addIn2.Version),
Tags = SharpDevelopAddInTag, Tags = SharpDevelopAddInTag
DownloadCount = 20
}; };
// List of NuGet repositories // List of NuGet repositories
@ -308,7 +309,7 @@ namespace ICSharpCode.AddInManager2.Tests
List<IPackageRepository> registeredPackageRepositories = new List<IPackageRepository>(); List<IPackageRepository> registeredPackageRepositories = new List<IPackageRepository>();
FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository(); FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository();
remoteRepository.Source = registeredPackageSources[0].Source; 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; _services.FakeRepositories.RegisteredPackageRepositories = registeredPackageRepositories;
// PackageRepository service should return remoteRepository instance // PackageRepository service should return remoteRepository instance

3
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

@ -146,7 +146,8 @@ namespace ICSharpCode.AddInManager2.ViewModel
private IQueryable<IPackage> OrderPackages(IQueryable<IPackage> packages) private IQueryable<IPackage> OrderPackages(IQueryable<IPackage> packages)
{ {
return packages return packages
.OrderBy(package => package.Id); .OrderBy(package => package.Id)
.ThenBy(package => package.Version);
} }
private IQueryable<IPackage> FilterPackagesBySearchCriteria(IQueryable<IPackage> packages) private IQueryable<IPackage> FilterPackagesBySearchCriteria(IQueryable<IPackage> packages)

Loading…
Cancel
Save