void CreateProject (IPackageRepository sourceRepository) { fakePackageManagerFactory = new FakePackageManagerFactory (); fakePackageManager = fakePackageManagerFactory.FakePackageManager; fakeProjectManager = fakePackageManager.FakeProjectManager; fakeProject = new FakeDotNetProject (); packageManagementEvents = new PackageManagementEvents (); project = new PackageManagementProject ( sourceRepository, fakeProject, packageManagementEvents, fakePackageManagerFactory); }
void RaisePackageRemovedEventWhenPackageReferenceAdded ( FakeProjectManager projectManager, FakePackage newPackage, params PackageOperationEventArgs[] eventArgs) { projectManager.WhenAddPackageReferenceCalled ( newPackage.Id, newPackage.Version, () => eventArgs.ToList ().ForEach (eventArg => projectManager.FirePackageReferenceRemoved (eventArg))); }
public void UpdatePackage_OldPackageReferenceIsRemovedOnUpdatingButAnotherProjectStillReferencesThePackage_OldPackageIsNotUninstalled () { CreatePackageManager (); var fakeProjectManager = new FakeProjectManager (); packageManager.ProjectManager = fakeProjectManager; FakePackage installedPackage = fakeSolutionSharedRepository.AddFakePackageWithVersion ("MyPackage-Core", "1.0"); FakePackage updatedPackage = fakeFeedSourceRepository.AddFakePackageWithVersion ("MyPackage", "1.1"); var eventArgs = new PackageOperationEventArgs (installedPackage, null, null); RaisePackageRemovedEventWhenPackageReferenceUpdated (fakeProjectManager, updatedPackage, eventArgs); var updateAction = new FakeUpdatePackageAction { Operations = new List<PackageOperation> (), UpdateDependencies = false }; fakeSolutionSharedRepository.PackageIdsReferences.Add ("MyPackage-Core"); packageManager.UpdatePackage (updatedPackage, updateAction); Assert.IsTrue (fakeSolutionSharedRepository.FakePackages.Contains (installedPackage)); }
public void InstallPackage_OldPackageReferenceIsRemovedOnInstallingButOtherProjectsReferencesOldPackage_OldPackageIsNotUninstalled () { CreatePackageManager (); var fakeProjectManager = new FakeProjectManager (); packageManager.ProjectManager = fakeProjectManager; FakePackage installedPackage = fakeSolutionSharedRepository.AddFakePackageWithVersion ("MyPackage.Core", "1.0"); FakePackage newPackage = fakeFeedSourceRepository.AddFakePackageWithVersion ("MyPackage", "1.1"); fakeSolutionSharedRepository.PackageIdsReferences.Add ("MyPackage.Core"); var eventArgs = new PackageOperationEventArgs (installedPackage, null, null); RaisePackageRemovedEventWhenPackageReferenceAdded (fakeProjectManager, newPackage, eventArgs); var installAction = new FakeInstallPackageAction { Operations = new List<PackageOperation> () }; packageManager.InstallPackage (newPackage, installAction); Assert.IsTrue (fakeSolutionSharedRepository.FakePackages.Contains (installedPackage)); }
public void UpdatePackage_TwoOldPackageReferencesAreRemovedOnUpdating_BothOldPackagesAreUninstalled () { CreatePackageManager (); var fakeProjectManager = new FakeProjectManager (); packageManager.ProjectManager = fakeProjectManager; FakePackage installedPackage1 = fakeSolutionSharedRepository.AddFakePackageWithVersion ("MyPackage-Core", "1.0"); FakePackage installedPackage2 = fakeSolutionSharedRepository.AddFakePackageWithVersion ("MyPackage", "1.0"); FakePackage updatedPackage = fakeFeedSourceRepository.AddFakePackageWithVersion ("MyPackage", "1.1"); var eventArgs1 = new PackageOperationEventArgs (installedPackage1, null, null); var eventArgs2 = new PackageOperationEventArgs (installedPackage2, null, null); RaisePackageRemovedEventWhenPackageReferenceUpdated (fakeProjectManager, updatedPackage, eventArgs1, eventArgs2); var updateAction = new FakeUpdatePackageAction { Operations = new List<PackageOperation> (), UpdateDependencies = false }; packageManager.UpdatePackage (updatedPackage, updateAction); Assert.IsFalse (fakeSolutionSharedRepository.FakePackages.Contains (installedPackage2)); Assert.IsFalse (fakeSolutionSharedRepository.FakePackages.Contains (installedPackage1)); }