Browse Source

Fix updated packages from using the wrong active project after a package is installed.

pull/16/merge
Matt Ward 14 years ago
parent
commit
4c5a649507
  1. 7
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs
  2. 26
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

7
src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackagesViewModel.cs

@ -11,7 +11,7 @@ namespace ICSharpCode.PackageManagement
{ {
public class UpdatedPackagesViewModel : PackagesViewModel public class UpdatedPackagesViewModel : PackagesViewModel
{ {
IPackageManagementSolution solution; PackageManagementSelectedProjects selectedProjects;
UpdatedPackages updatedPackages; UpdatedPackages updatedPackages;
string errorMessage = String.Empty; string errorMessage = String.Empty;
@ -29,7 +29,7 @@ namespace ICSharpCode.PackageManagement
} }
public UpdatedPackagesViewModel( public UpdatedPackagesViewModel(
IPackageManagementSolution packageManagementService, IPackageManagementSolution solution,
IRegisteredPackageRepositories registeredPackageRepositories, IRegisteredPackageRepositories registeredPackageRepositories,
UpdatedPackageViewModelFactory packageViewModelFactory, UpdatedPackageViewModelFactory packageViewModelFactory,
ITaskFactory taskFactory) ITaskFactory taskFactory)
@ -38,7 +38,7 @@ namespace ICSharpCode.PackageManagement
packageViewModelFactory, packageViewModelFactory,
taskFactory) taskFactory)
{ {
this.solution = packageManagementService; this.selectedProjects = new PackageManagementSelectedProjects(solution);
} }
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts() protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
@ -54,7 +54,6 @@ namespace ICSharpCode.PackageManagement
IQueryable<IPackage> GetInstalledPackages(IPackageRepository aggregateRepository) IQueryable<IPackage> GetInstalledPackages(IPackageRepository aggregateRepository)
{ {
var selectedProjects = new PackageManagementSelectedProjects(solution);
return selectedProjects.GetInstalledPackages(aggregateRepository); return selectedProjects.GetInstalledPackages(aggregateRepository);
} }

26
src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

@ -158,5 +158,31 @@ namespace PackageManagement.Tests
PackageCollectionAssert.AreEqual(expectedPackages, viewModel.PackageViewModels); 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);
}
} }
} }

Loading…
Cancel
Save