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

Commit 8e2c71e

Browse files
author
Dragan
committed
PackageManagement.Test
1 parent 017e7f5 commit 8e2c71e

3 files changed

Lines changed: 37 additions & 21 deletions

File tree

src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementEvents.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,24 @@ public bool OnAcceptLicenses(IEnumerable<IPackage> packages)
6666
return OnAcceptLicensesReturnValue;
6767
}
6868

69+
public PackageViewModel PackageViewModel;
70+
6971
public IPackage PackagePassedToOnParentPackageInstalled;
7072
public bool IsOnParentPackageInstalledCalled;
7173

7274
public void OnParentPackageInstalled(IPackage package)
7375
{
7476
PackagePassedToOnParentPackageInstalled = package;
7577
IsOnParentPackageInstalledCalled = true;
78+
if (PackageViewModel != null) PackageViewModel.PackageChanged();
7679
}
7780

7881
public IPackage PackagePassedToOnParentPackageUninstalled;
7982

8083
public void OnParentPackageUninstalled(IPackage package)
8184
{
8285
PackagePassedToOnParentPackageUninstalled = package;
86+
if (PackageViewModel != null) PackageViewModel.PackageChanged();
8387
}
8488

8589
public MessageLevel MessageLevelPassedToOnPackageOperationMessageLogged;

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -617,16 +617,17 @@ public void GetInstalledPackages_OnePackageInstalledIntoOneProjectButTwoPackages
617617
fakeProjectFactory.CreatePackageManagementProject = (repository, msbuildProject) => {
618618
return project;
619619
};
620-
FakePackage notInstalledPackage = FakePackage.CreatePackageWithVersion("NotInstalled", "1.0.0.0");
621-
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(notInstalledPackage);
622-
FakePackage installedPackage = FakePackage.CreatePackageWithVersion("Installed", "1.0.0.0");
623-
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(installedPackage);
624-
project.FakePackages.Add(installedPackage);
620+
FakePackage installedSolutionPackage = FakePackage.CreatePackageWithVersion("SolutionPackage", "1.0.0.0");
621+
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(installedSolutionPackage);
622+
FakePackage installedProjectPackage = FakePackage.CreatePackageWithVersion("ProjectPackage", "1.0.0.0");
623+
fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add(installedProjectPackage);
624+
project.FakePackages.Add(installedProjectPackage);
625625

626626
IQueryable<IPackage> packages = solution.GetInstalledPackages();
627627

628628
var expectedPackages = new FakePackage[] {
629-
installedPackage
629+
installedSolutionPackage,
630+
installedProjectPackage
630631
};
631632

632633
Assert.AreEqual(expectedPackages, packages);

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

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -220,27 +220,27 @@ public void AddPackage_PackageAddedSuccessfully_PackageOperationsUsedWhenInstall
220220
}
221221

222222
[Test]
223-
[Ignore("Property is not changed. Event OnParentPackageInstalled is fired")]
224223
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
225224
{
226-
Assert.Ignore("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
227-
228225
CreateViewModel();
229226
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage();
230227

231228
string propertyChangedName = null;
232229
viewModel.PropertyChanged += (sender, e) => propertyChangedName = e.PropertyName;
230+
233231
viewModel.AddPackage();
232+
233+
// 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");
235+
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
236+
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
234237

235238
Assert.AreEqual("IsAdded", propertyChangedName);
236239
}
237240

238241
[Test]
239-
[Ignore("Property is not changed. Event OnParentPackageInstalled is fired")]
240242
public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredAfterPackageInstalled()
241243
{
242-
Assert.Ignore("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
243-
244244
CreateViewModel();
245245
IPackage packagePassedToInstallPackageWhenPropertyNameChanged = null;
246246
viewModel.PropertyChanged += (sender, e) => {
@@ -249,6 +249,11 @@ public void AddPackage_PackageAddedSuccessfully_PropertyNotifyChangedFiredAfterP
249249
};
250250
viewModel.AddPackage();
251251

252+
// 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");
254+
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
255+
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
256+
252257
Assert.AreEqual(fakePackage, packagePassedToInstallPackageWhenPropertyNameChanged);
253258
}
254259

@@ -343,32 +348,36 @@ public void RemovePackage_PackageRemovedSuccessfully_RepositoryUsedToCreateProje
343348
}
344349

345350
[Test]
346-
[Ignore("Property is not changed. Event OnParentPackageUninstalled is fired")]
347351
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredForIsAddedProperty()
348352
{
349-
Assert.Ignore("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
350-
351353
CreateViewModel();
352354
string propertyChangedName = null;
353355
viewModel.PropertyChanged += (sender, e) => propertyChangedName = e.PropertyName;
354356
viewModel.RemovePackage();
355357

358+
// 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");
360+
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
361+
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
362+
356363
Assert.AreEqual("IsAdded", propertyChangedName);
357364
}
358365

359366
[Test]
360-
[Ignore("Property is not changed. Event OnParentPackageUninstalled is fired")]
361367
public void RemovePackage_PackageRemovedSuccessfully_PropertyNotifyChangedFiredAfterPackageUninstalled()
362368
{
363-
Assert.Ignore("OnParentPackageUninstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
364-
365369
CreateViewModel();
366370
IPackage packagePassedToUninstallPackageWhenPropertyNameChanged = null;
367371
viewModel.PropertyChanged += (sender, e) => {
368372
packagePassedToUninstallPackageWhenPropertyNameChanged = fakeUninstallPackageAction.Package;
369373
};
370374
viewModel.RemovePackage();
371375

376+
// 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");
378+
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
379+
viewModel.FakePackageManagementEvents.OnParentPackageUninstalled(viewModel.FakePackage);
380+
372381
Assert.AreEqual(fakePackage, packagePassedToUninstallPackageWhenPropertyNameChanged);
373382
}
374383

@@ -910,11 +919,8 @@ public void ManagePackage_TwoProjectsSelectedAndUserCancelsSelectedProjects_Mess
910919
}
911920

912921
[Test]
913-
[Ignore("Property is not changed. Event OnParentPackageInstalled is fired")]
914922
public void ManagePackage_TwoProjectsSelectedAndUserAcceptsSelectedProjects_IsAddedPropertyChanged()
915923
{
916-
Assert.Ignore("OnParentPackageInstalled event, parent ([derived]PackagesViewModel) will call ReadPackages() or OnPackageChanged");
917-
918924
CreateViewModelWithTwoProjectsSelected("Project A", "Project B");
919925
viewModel.FakePackageManagementEvents.ProjectsToSelect.Add("Project A");
920926
viewModel.FakePackageManagementEvents.ProjectsToSelect.Add("Project B");
@@ -925,6 +931,11 @@ public void ManagePackage_TwoProjectsSelectedAndUserAcceptsSelectedProjects_IsAd
925931

926932
viewModel.ManagePackage();
927933

934+
// 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");
936+
viewModel.FakePackageManagementEvents.PackageViewModel = viewModel;
937+
viewModel.FakePackageManagementEvents.OnParentPackageInstalled(viewModel.FakePackage);
938+
928939
Assert.AreEqual("IsAdded", propertyChangedName);
929940
}
930941

0 commit comments

Comments
 (0)