diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs b/src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs index d5e50aacbf..b29748dd8e 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs @@ -11,7 +11,7 @@ namespace ICSharpCode.PackageManagement { public class UpdatedPackagesViewModel : PackagesViewModel { - IPackageManagementSolution solution; + PackageManagementSelectedProjects selectedProjects; UpdatedPackages updatedPackages; string errorMessage = String.Empty; @@ -29,7 +29,7 @@ namespace ICSharpCode.PackageManagement } public UpdatedPackagesViewModel( - IPackageManagementSolution packageManagementService, + IPackageManagementSolution solution, IRegisteredPackageRepositories registeredPackageRepositories, UpdatedPackageViewModelFactory packageViewModelFactory, ITaskFactory taskFactory) @@ -38,7 +38,7 @@ namespace ICSharpCode.PackageManagement packageViewModelFactory, taskFactory) { - this.solution = packageManagementService; + this.selectedProjects = new PackageManagementSelectedProjects(solution); } protected override void UpdateRepositoryBeforeReadPackagesTaskStarts() @@ -54,7 +54,6 @@ namespace ICSharpCode.PackageManagement IQueryable GetInstalledPackages(IPackageRepository aggregateRepository) { - var selectedProjects = new PackageManagementSelectedProjects(solution); return selectedProjects.GetInstalledPackages(aggregateRepository); } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs index 8fa2b27f1b..6f565bdddd 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs @@ -158,5 +158,31 @@ namespace PackageManagement.Tests PackageCollectionAssert.AreEqual(expectedPackages, viewModel.PackageViewModels); } + + [Test] + public void ReadPackages_SolutionInitiallySelectedWithOneNewerPackageAndProjectSelectedBeforeSecondReadOfPackages_NewerPackageVersionDisplayed() + { + CreateSolution(); + NoProjectsSelected(); + CreateViewModel(solution); + AddPackageToSolution("1.0.0.0"); + FakePackage newerPackage = AddPackageToAggregateRepository("1.1.0.0"); + + viewModel.ReadPackages(); + CompleteReadPackagesTask(); + + TestableProject msbuildProject = ProjectHelper.CreateTestProject("Test"); + solution.FakeActiveMSBuildProject = msbuildProject; + solution.FakeActiveProject = new FakePackageManagementProject("Test"); + + viewModel.ReadPackages(); + CompleteReadPackagesTask(); + + var expectedPackages = new FakePackage[] { + newerPackage + }; + + PackageCollectionAssert.AreEqual(expectedPackages, viewModel.PackageViewModels); + } } }