Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 285d639

Browse files
author
Dragan
committed
PM: Self-explanatory names & fix & test
1 parent 8e2c71e commit 285d639

9 files changed

Lines changed: 66 additions & 32 deletions

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ UpdatedPackages CreateUpdatedPackages(IPackageRepository repository)
205205

206206
IQueryable<IPackage> GetPackagesInstalledIntoAnyProject()
207207
{
208-
return ConsoleHost.Solution.GetInstalledPackages();
208+
return ConsoleHost.Solution.GetProjectPackages();
209209
}
210210

211211
IPackageManagementProject GetSelectedProject(IPackageRepository repository)

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,12 @@ public string GetInstallPath(IPackage package)
201201
throw new NotImplementedException();
202202
}
203203

204-
public IQueryable<IPackage> GetInstalledPackages()
204+
public IQueryable<IPackage> GetSolutionPackages()
205+
{
206+
throw new NotImplementedException();
207+
}
208+
209+
public IQueryable<IPackage> GetProjectPackages()
205210
{
206211
return FakeInstalledPackages.AsQueryable();
207212
}

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@ public interface IPackageManagementSolution
3737
IProject GetActiveMSBuildProject();
3838
IEnumerable<IProject> GetMSBuildProjects();
3939
bool HasMultipleProjects();
40-
bool IsPackageInstalled(IPackage package);
41-
IQueryable<IPackage> GetPackages();
4240
IEnumerable<IPackage> GetPackagesInReverseDependencyOrder();
4341
string GetInstallPath(IPackage package);
4442

45-
/// <summary>
46-
/// Returns all packages that are installed into solution or a project.
47-
/// GetPackages() will return any packages in the packages folder even if
48-
/// they are not installed.
49-
/// </summary>
50-
IQueryable<IPackage> GetInstalledPackages();
43+
/// <summary>Return true if package is installed (solution/project)</summary>
44+
bool IsPackageInstalled(IPackage package);
45+
46+
/// <summary>Return installed (solution/project) packages</summary>
47+
IQueryable<IPackage> GetPackages();
48+
49+
/// <summary>Returns installed project-packages (in any project)</summary>
50+
IQueryable<IPackage> GetProjectPackages();
51+
52+
/// <summary>Returns installed solution-packages</summary>
53+
IQueryable<IPackage> GetSolutionPackages();
5154

5255
bool IsOpen { get; }
5356
string FileName { get; }

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ protected override IQueryable<IPackage> GetAllPackages()
6868
if (project != null) {
6969
return project.GetPackages();
7070
}
71-
return solution.GetInstalledPackages();
71+
return solution.GetPackages();
7272
}
7373

7474
void ThrowOriginalExceptionWhenTryingToGetProjectManager()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public bool IsPackageInstalledInSolution(IPackage package)
148148

149149
public IQueryable<IPackage> GetPackagesInstalledInSolution()
150150
{
151-
return Solution.GetInstalledPackages();
151+
return Solution.GetPackages();
152152
}
153153

154154
public IQueryable<IPackage> GetInstalledPackages(IPackageRepository sourceRepository)

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,14 @@ public bool HasMultipleProjects()
152152
return projectService.AllProjects.Count > 1;
153153
}
154154

155-
public bool IsPackageInstalled(IPackage package)
155+
public ISolutionPackageRepository CreateSolutionPackageRepository()
156156
{
157-
return CreateSolutionPackageRepository().IsInstalled(package);
157+
return solutionPackageRepositoryFactory.CreateSolutionPackageRepository(OpenSolution);
158158
}
159159

160-
public ISolutionPackageRepository CreateSolutionPackageRepository()
160+
public bool IsPackageInstalled(IPackage package)
161161
{
162-
return solutionPackageRepositoryFactory.CreateSolutionPackageRepository(OpenSolution);
162+
return CreateSolutionPackageRepository().IsInstalled(package);
163163
}
164164

165165
public IQueryable<IPackage> GetPackages()
@@ -168,18 +168,22 @@ public IQueryable<IPackage> GetPackages()
168168
return repository.GetPackages();
169169
}
170170

171-
public IQueryable<IPackage> GetInstalledPackages()
171+
public IQueryable<IPackage> GetSolutionPackages()
172172
{
173173
ISolutionPackageRepository repository = CreateSolutionPackageRepository();
174174
List<IPackageManagementProject> projects = GetProjects(ActivePackageRepository).ToList();
175175
return repository
176176
.GetPackages()
177-
.Where(package => IsPackageInstalledInSolutionOrAnyProject(projects, package));
177+
.Where(package => !IsPackageInstalledInAnyProject(projects, package));
178178
}
179179

180-
bool IsPackageInstalledInSolutionOrAnyProject(IList<IPackageManagementProject> projects, IPackage package)
180+
public IQueryable<IPackage> GetProjectPackages()
181181
{
182-
return IsPackageInstalled(package) || IsPackageInstalledInAnyProject(projects, package);
182+
ISolutionPackageRepository repository = CreateSolutionPackageRepository();
183+
List<IPackageManagementProject> projects = GetProjects(ActivePackageRepository).ToList();
184+
return repository
185+
.GetPackages()
186+
.Where(package => IsPackageInstalledInAnyProject(projects, package));
183187
}
184188

185189
bool IsPackageInstalledInAnyProject(IList<IPackageManagementProject> projects, IPackage package)

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,9 @@ public void PackageViewModels_ChildViewModelParent_IsInstalledPackagesViewModel(
255255
}
256256

257257
[Test]
258-
public void PackageViewModels_PackageOnlyInPackagesFolder_ReturnsNoPackages()
258+
public void PackageViewModels_PackageOnlyInPackagesFolder_ProjectSelected_ReturnsNoPackages()
259259
{
260260
CreateSolution();
261-
NoProjectSelected();
262261
CreateViewModel(solution);
263262
FakePackage package = FakePackage.CreatePackageWithVersion("One", "1.1");
264263
solution.PackagesOnlyInPackagesFolder.Add(package);
@@ -268,5 +267,20 @@ public void PackageViewModels_PackageOnlyInPackagesFolder_ReturnsNoPackages()
268267

269268
Assert.AreEqual(0, viewModel.PackageViewModels.Count);
270269
}
270+
271+
[Test]
272+
public void PackageViewModels_PackageOnlyInPackagesFolder_NoProjectSelected_ReturnsOnePackage()
273+
{
274+
CreateSolution();
275+
NoProjectSelected();
276+
CreateViewModel(solution);
277+
FakePackage package = FakePackage.CreatePackageWithVersion("One", "1.1");
278+
solution.PackagesOnlyInPackagesFolder.Add(package);
279+
280+
viewModel.ReadPackages();
281+
CompleteReadPackagesTask();
282+
283+
Assert.AreEqual(1, viewModel.PackageViewModels.Count);
284+
}
271285
}
272286
}

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ public void GetPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutio
608608
}
609609

610610
[Test]
611-
public void GetInstalledPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutionRepository_ReturnsOnlyPackageInstalled()
611+
public void GetProjectPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutionRepository_ReturnsOnlyOneProjectPackage()
612612
{
613613
CreateSolution();
614614
fakeProjectService.CurrentProject = null;
@@ -623,25 +623,24 @@ public void GetInstalledPackages_OnePackageInstalledIntoOneProjectButTwoPackages
623623
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(installedProjectPackage);
624624
project.FakePackages.Add(installedProjectPackage);
625625

626-
IQueryable<IPackage> packages = solution.GetInstalledPackages();
626+
IQueryable<IPackage> packages = solution.GetProjectPackages();
627627

628628
var expectedPackages = new FakePackage[] {
629-
installedSolutionPackage,
630629
installedProjectPackage
631630
};
632631

633632
Assert.AreEqual(expectedPackages, packages);
634633
}
635634

636635
[Test]
637-
public void GetInstalledPackages_TwoProjectsButNoPackagesInstalled_PackageProjectsCreatedUsingActiveRepository()
636+
public void GetProjectPackages_TwoProjectsButNoPackagesInstalledInProjects_PackageProjectsCreatedUsingActiveRepository()
638637
{
639638
CreateSolution();
640639
fakeProjectService.CurrentProject = null;
641640
TestableProject testProject1 = AddProjectToOpenProjects("Test1");
642641
TestableProject testProject2 = AddProjectToOpenProjects("Test2");
643642

644-
IQueryable<IPackage> packages = solution.GetInstalledPackages();
643+
IQueryable<IPackage> packages = solution.GetProjectPackages();
645644

646645
Assert.AreEqual(testProject1, fakeProjectFactory.ProjectsPassedToCreateProject[0]);
647646
Assert.AreEqual(testProject2, fakeProjectFactory.ProjectsPassedToCreateProject[1]);

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ public void AddPackage_PackageAddedSuccessfully_PackageOperationsUsedWhenInstall
220220
}
221221

222222
[Test]
223+
[Category("ToDo")]
224+
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
223225
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
224226
{
225227
CreateViewModel();
@@ -231,14 +233,16 @@ public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredForIsA
231233
viewModel.AddPackage();
232234

233235
// fake fire parent action because there is no viewModel.parent in this test fixture
234-
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
236+
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
235237
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
236238
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
237239

238240
Assert.AreEqual("IsAdded", propertyChangedName);
239241
}
240242

241243
[Test]
244+
[Category("ToDo")]
245+
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
242246
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredAfterPackageInstalled()
243247
{
244248
CreateViewModel();
@@ -250,7 +254,7 @@ public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredAfterP
250254
viewModel.AddPackage();
251255

252256
// fake fire parent action because there is no viewModel.parent in this test fixture
253-
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
257+
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
254258
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
255259
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
256260

@@ -348,22 +352,26 @@ public void RemovePackage_PackageRemovedSuccessfully_RepositoryUsedToCreateProje
348352
}
349353

350354
[Test]
355+
[Category("ToDo")]
356+
[Description("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
351357
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
352358
{
359+
353360
CreateViewModel();
354361
string propertyChangedName = null;
355362
viewModel.PropertyChanged += (sender, e) => propertyChangedName = e.PropertyName;
356363
viewModel.RemovePackage();
357364

358365
// fake fire parent action because there is no viewModel.parent in this test fixture
359-
Assert.Inconclusive("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
360366
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
361367
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
362368

363369
Assert.AreEqual("IsAdded", propertyChangedName);
364370
}
365371

366372
[Test]
373+
[Category("ToDo")]
374+
[Description("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
367375
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredAfterPackageUninstalled()
368376
{
369377
CreateViewModel();
@@ -374,7 +382,6 @@ public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredA
374382
viewModel.RemovePackage();
375383

376384
// fake fire parent action because there is no viewModel.parent in this test fixture
377-
Assert.Inconclusive("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
378385
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
379386
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
380387

@@ -919,6 +926,8 @@ public void ManagePackage_TwoProjectsSelectedAndUserCancelsSelectedProjects_Mess
919926
}
920927

921928
[Test]
929+
[Category("ToDo")]
930+
[Description("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged")]
922931
public void ManagePackage_TwoProjectsSelectedAndUserAcceptsSelectedProjects_IsAddedPropertyChanged()
923932
{
924933
CreateViewModelWithTwoProjectsSelected("Project A", "Project B");
@@ -932,7 +941,7 @@ public void ManagePackage_TwoProjectsSelectedAndUserAcceptsSelectedProjects_IsAd
932941
viewModel.ManagePackage();
933942

934943
// fake fire parent action because there is no viewModel.parent in this test fixture
935-
Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
944+
// Assert.Inconclusive("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
936945
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
937946
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
938947

0 commit comments

Comments
 (0)