Browse Source

PM: Self-explanatory names & fix & test

pull/374/head
Dragan 12 years ago
parent
commit
285d6391d8
  1. 2
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetPackageCmdlet.cs
  2. 7
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs
  3. 19
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackagesViewModel.cs
  5. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSelectedProjects.cs
  6. 20
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs
  7. 18
      src/AddIns/Misc/PackageManagement/Test/Src/InstalledPackagesViewModelTests.cs
  8. 9
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs
  9. 19
      src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

2
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetPackageCmdlet.cs

@ -205,7 +205,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -205,7 +205,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets
IQueryable<IPackage> GetPackagesInstalledIntoAnyProject()
{
return ConsoleHost.Solution.GetInstalledPackages();
return ConsoleHost.Solution.GetProjectPackages();
}
IPackageManagementProject GetSelectedProject(IPackageRepository repository)

7
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs

@ -201,7 +201,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -201,7 +201,12 @@ namespace ICSharpCode.PackageManagement.Design
throw new NotImplementedException();
}
public IQueryable<IPackage> GetInstalledPackages()
public IQueryable<IPackage> GetSolutionPackages()
{
throw new NotImplementedException();
}
public IQueryable<IPackage> GetProjectPackages()
{
return FakeInstalledPackages.AsQueryable();
}

19
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs

@ -37,17 +37,20 @@ namespace ICSharpCode.PackageManagement @@ -37,17 +37,20 @@ namespace ICSharpCode.PackageManagement
IProject GetActiveMSBuildProject();
IEnumerable<IProject> GetMSBuildProjects();
bool HasMultipleProjects();
bool IsPackageInstalled(IPackage package);
IQueryable<IPackage> GetPackages();
IEnumerable<IPackage> GetPackagesInReverseDependencyOrder();
string GetInstallPath(IPackage package);
/// <summary>
/// Returns all packages that are installed into solution or a project.
/// GetPackages() will return any packages in the packages folder even if
/// they are not installed.
/// </summary>
IQueryable<IPackage> GetInstalledPackages();
/// <summary>Return true if package is installed (solution/project)</summary>
bool IsPackageInstalled(IPackage package);
/// <summary>Return installed (solution/project) packages</summary>
IQueryable<IPackage> GetPackages();
/// <summary>Returns installed project-packages (in any project)</summary>
IQueryable<IPackage> GetProjectPackages();
/// <summary>Returns installed solution-packages</summary>
IQueryable<IPackage> GetSolutionPackages();
bool IsOpen { get; }
string FileName { get; }

2
src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackagesViewModel.cs

@ -68,7 +68,7 @@ namespace ICSharpCode.PackageManagement @@ -68,7 +68,7 @@ namespace ICSharpCode.PackageManagement
if (project != null) {
return project.GetPackages();
}
return solution.GetInstalledPackages();
return solution.GetPackages();
}
void ThrowOriginalExceptionWhenTryingToGetProjectManager()

2
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSelectedProjects.cs

@ -148,7 +148,7 @@ namespace ICSharpCode.PackageManagement @@ -148,7 +148,7 @@ namespace ICSharpCode.PackageManagement
public IQueryable<IPackage> GetPackagesInstalledInSolution()
{
return Solution.GetInstalledPackages();
return Solution.GetPackages();
}
public IQueryable<IPackage> GetInstalledPackages(IPackageRepository sourceRepository)

20
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs

@ -152,14 +152,14 @@ namespace ICSharpCode.PackageManagement @@ -152,14 +152,14 @@ namespace ICSharpCode.PackageManagement
return projectService.AllProjects.Count > 1;
}
public bool IsPackageInstalled(IPackage package)
public ISolutionPackageRepository CreateSolutionPackageRepository()
{
return CreateSolutionPackageRepository().IsInstalled(package);
return solutionPackageRepositoryFactory.CreateSolutionPackageRepository(OpenSolution);
}
public ISolutionPackageRepository CreateSolutionPackageRepository()
public bool IsPackageInstalled(IPackage package)
{
return solutionPackageRepositoryFactory.CreateSolutionPackageRepository(OpenSolution);
return CreateSolutionPackageRepository().IsInstalled(package);
}
public IQueryable<IPackage> GetPackages()
@ -168,18 +168,22 @@ namespace ICSharpCode.PackageManagement @@ -168,18 +168,22 @@ namespace ICSharpCode.PackageManagement
return repository.GetPackages();
}
public IQueryable<IPackage> GetInstalledPackages()
public IQueryable<IPackage> GetSolutionPackages()
{
ISolutionPackageRepository repository = CreateSolutionPackageRepository();
List<IPackageManagementProject> projects = GetProjects(ActivePackageRepository).ToList();
return repository
.GetPackages()
.Where(package => IsPackageInstalledInSolutionOrAnyProject(projects, package));
.Where(package => !IsPackageInstalledInAnyProject(projects, package));
}
bool IsPackageInstalledInSolutionOrAnyProject(IList<IPackageManagementProject> projects, IPackage package)
public IQueryable<IPackage> GetProjectPackages()
{
return IsPackageInstalled(package) || IsPackageInstalledInAnyProject(projects, package);
ISolutionPackageRepository repository = CreateSolutionPackageRepository();
List<IPackageManagementProject> projects = GetProjects(ActivePackageRepository).ToList();
return repository
.GetPackages()
.Where(package => IsPackageInstalledInAnyProject(projects, package));
}
bool IsPackageInstalledInAnyProject(IList<IPackageManagementProject> projects, IPackage package)

18
src/AddIns/Misc/PackageManagement/Test/Src/InstalledPackagesViewModelTests.cs

@ -255,10 +255,9 @@ namespace PackageManagement.Tests @@ -255,10 +255,9 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageViewModels_PackageOnlyInPackagesFolder_ReturnsNoPackages()
public void PackageViewModels_PackageOnlyInPackagesFolder_ProjectSelected_ReturnsNoPackages()
{
CreateSolution();
NoProjectSelected();
CreateViewModel(solution);
FakePackage package = FakePackage.CreatePackageWithVersion("One", "1.1");
solution.PackagesOnlyInPackagesFolder.Add(package);
@ -268,5 +267,20 @@ namespace PackageManagement.Tests @@ -268,5 +267,20 @@ namespace PackageManagement.Tests
Assert.AreEqual(0, viewModel.PackageViewModels.Count);
}
[Test]
public void PackageViewModels_PackageOnlyInPackagesFolder_NoProjectSelected_ReturnsOnePackage()
{
CreateSolution();
NoProjectSelected();
CreateViewModel(solution);
FakePackage package = FakePackage.CreatePackageWithVersion("One", "1.1");
solution.PackagesOnlyInPackagesFolder.Add(package);
viewModel.ReadPackages();
CompleteReadPackagesTask();
Assert.AreEqual(1, viewModel.PackageViewModels.Count);
}
}
}

9
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs

@ -608,7 +608,7 @@ namespace PackageManagement.Tests @@ -608,7 +608,7 @@ namespace PackageManagement.Tests
}
[Test]
public void GetInstalledPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutionRepository_ReturnsOnlyPackageInstalled()
public void GetProjectPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutionRepository_ReturnsOnlyOneProjectPackage()
{
CreateSolution();
fakeProjectService.CurrentProject = null;
@ -623,10 +623,9 @@ namespace PackageManagement.Tests @@ -623,10 +623,9 @@ namespace PackageManagement.Tests
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(installedProjectPackage);
project.FakePackages.Add(installedProjectPackage);
IQueryable<IPackage> packages = solution.GetInstalledPackages();
IQueryable<IPackage> packages = solution.GetProjectPackages();
var expectedPackages = new FakePackage[] {
installedSolutionPackage,
installedProjectPackage
};
@ -634,14 +633,14 @@ namespace PackageManagement.Tests @@ -634,14 +633,14 @@ namespace PackageManagement.Tests
}
[Test]
public void GetInstalledPackages_TwoProjectsButNoPackagesInstalled_PackageProjectsCreatedUsingActiveRepository()
public void GetProjectPackages_TwoProjectsButNoPackagesInstalledInProjects_PackageProjectsCreatedUsingActiveRepository()
{
CreateSolution();
fakeProjectService.CurrentProject = null;
TestableProject testProject1 = AddProjectToOpenProjects("Test1");
TestableProject testProject2 = AddProjectToOpenProjects("Test2");
IQueryable<IPackage> packages = solution.GetInstalledPackages();
IQueryable<IPackage> packages = solution.GetProjectPackages();
Assert.AreEqual(testProject1, fakeProjectFactory.ProjectsPassedToCreateProject[0]);
Assert.AreEqual(testProject2, fakeProjectFactory.ProjectsPassedToCreateProject[1]);

19
src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

@ -220,6 +220,8 @@ namespace PackageManagement.Tests @@ -220,6 +220,8 @@ namespace PackageManagement.Tests
}
[Test]
[Category("ToDo")]
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
{
CreateViewModel();
@ -231,7 +233,7 @@ namespace PackageManagement.Tests @@ -231,7 +233,7 @@ namespace PackageManagement.Tests
viewModel.AddPackage();
// fake fire parent action because there is no viewModel.parent in this test fixture
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
@ -239,6 +241,8 @@ namespace PackageManagement.Tests @@ -239,6 +241,8 @@ namespace PackageManagement.Tests
}
[Test]
[Category("ToDo")]
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredAfterPackageInstalled()
{
CreateViewModel();
@ -250,7 +254,7 @@ namespace PackageManagement.Tests @@ -250,7 +254,7 @@ namespace PackageManagement.Tests
viewModel.AddPackage();
// fake fire parent action because there is no viewModel.parent in this test fixture
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
@ -348,15 +352,17 @@ namespace PackageManagement.Tests @@ -348,15 +352,17 @@ namespace PackageManagement.Tests
}
[Test]
[Category("ToDo")]
[Description("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
{
CreateViewModel();
string propertyChangedName = null;
viewModel.PropertyChanged += (sender, e) => propertyChangedName = e.PropertyName;
viewModel.RemovePackage();
// fake fire parent action because there is no viewModel.parent in this test fixture
Assert.Inconclusive("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
@ -364,6 +370,8 @@ namespace PackageManagement.Tests @@ -364,6 +370,8 @@ namespace PackageManagement.Tests
}
[Test]
[Category("ToDo")]
[Description("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredAfterPackageUninstalled()
{
CreateViewModel();
@ -374,7 +382,6 @@ namespace PackageManagement.Tests @@ -374,7 +382,6 @@ namespace PackageManagement.Tests
viewModel.RemovePackage();
// fake fire parent action because there is no viewModel.parent in this test fixture
Assert.Inconclusive("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
@ -919,6 +926,8 @@ namespace PackageManagement.Tests @@ -919,6 +926,8 @@ namespace PackageManagement.Tests
}
[Test]
[Category("ToDo")]
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
public void ManagePackage_TwoProjectsSelectedAndUserAcceptsSelectedProjects_IsAddedPropertyChanged()
{
CreateViewModelWithTwoProjectsSelected("Project A", "Project B");
@ -932,7 +941,7 @@ namespace PackageManagement.Tests @@ -932,7 +941,7 @@ namespace PackageManagement.Tests
viewModel.ManagePackage();
// fake fire parent action because there is no viewModel.parent in this test fixture
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);

Loading…
Cancel
Save