Browse Source

Reduce the number of method parameters used in package manager and project manager classes.

pull/18/head
Matt Ward 14 years ago
parent
commit
dbbdb73820
  1. 28
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
  2. 34
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManager.cs
  3. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUpdatePackageAction.cs
  4. 8
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs
  5. 3
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageOperationResolverFactory.cs
  6. 7
      src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopPackageManager.cs
  7. 4
      src/AddIns/Misc/PackageManagement/Project/Src/InstallPackageAction.cs
  8. 16
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
  9. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs
  10. 5
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  11. 30
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManager.cs
  12. 2
      src/AddIns/Misc/PackageManagement/Project/Src/UninstallPackageAction.cs
  13. 7
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatePackageAction.cs
  14. 9
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ExceptionThrowingPackageManagementProject.cs
  15. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageOperationResolverFactory.cs
  16. 137
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs
  17. 35
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

28
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs

@ -64,11 +64,11 @@ namespace ICSharpCode.PackageManagement.Design @@ -64,11 +64,11 @@ namespace ICSharpCode.PackageManagement.Design
public bool IgnoreDependenciesPassedToGetInstallPackageOperations;
public bool AllowPrereleaseVersionsPassedToGetInstallPackageOperations;
public virtual IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
public virtual IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction)
{
PackagePassedToGetInstallPackageOperations = package;
IgnoreDependenciesPassedToGetInstallPackageOperations = ignoreDependencies;
AllowPrereleaseVersionsPassedToGetInstallPackageOperations = allowPrereleaseVersions;
IgnoreDependenciesPassedToGetInstallPackageOperations = installAction.IgnoreDependencies;
AllowPrereleaseVersionsPassedToGetInstallPackageOperations = installAction.AllowPrereleaseVersions;
return FakeInstallOperations;
}
@ -80,12 +80,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -80,12 +80,12 @@ namespace ICSharpCode.PackageManagement.Design
public bool IgnoreDependenciesPassedToInstallPackage;
public bool AllowPrereleaseVersionsPassedToInstallPackage;
public void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions)
public void InstallPackage(IPackage package, InstallPackageAction installAction)
{
PackagePassedToInstallPackage = package;
PackageOperationsPassedToInstallPackage = operations;
IgnoreDependenciesPassedToInstallPackage = ignoreDependencies;
AllowPrereleaseVersionsPassedToInstallPackage = allowPrereleaseVersions;
PackageOperationsPassedToInstallPackage = installAction.Operations;
IgnoreDependenciesPassedToInstallPackage = installAction.IgnoreDependencies;
AllowPrereleaseVersionsPassedToInstallPackage = installAction.AllowPrereleaseVersions;
}
public FakePackageOperation AddFakeInstallOperation()
@ -114,11 +114,11 @@ namespace ICSharpCode.PackageManagement.Design @@ -114,11 +114,11 @@ namespace ICSharpCode.PackageManagement.Design
public bool ForceRemovePassedToUninstallPackage;
public bool RemoveDependenciesPassedToUninstallPackage;
public void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies)
public void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction)
{
PackagePassedToUninstallPackage = package;
ForceRemovePassedToUninstallPackage = forceRemove;
RemoveDependenciesPassedToUninstallPackage = removeDependencies;
ForceRemovePassedToUninstallPackage = uninstallAction.ForceRemove;
RemoveDependenciesPassedToUninstallPackage = uninstallAction.RemoveDependencies;
}
public IPackage PackagePassedToUpdatePackage;
@ -127,12 +127,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -127,12 +127,12 @@ namespace ICSharpCode.PackageManagement.Design
public bool AllowPrereleaseVersionsPassedToUpdatePackage;
public bool IsUpdatePackageCalled;
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions)
public void UpdatePackage(IPackage package, UpdatePackageAction updateAction)
{
PackagePassedToUpdatePackage = package;
PackageOperationsPassedToUpdatePackage = operations;
UpdateDependenciesPassedToUpdatePackage = updateDependencies;
AllowPrereleaseVersionsPassedToUpdatePackage = allowPrereleaseVersions;
PackageOperationsPassedToUpdatePackage = updateAction.Operations;
UpdateDependenciesPassedToUpdatePackage = updateAction.UpdateDependencies;
AllowPrereleaseVersionsPassedToUpdatePackage = updateAction.AllowPrereleaseVersions;
IsUpdatePackageCalled = true;
}

34
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManager.cs

@ -52,23 +52,28 @@ namespace ICSharpCode.PackageManagement.Design @@ -52,23 +52,28 @@ namespace ICSharpCode.PackageManagement.Design
public bool ForceRemovePassedToUninstallPackage;
public bool RemoveDependenciesPassedToUninstallPackage;
public void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies)
public void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction)
{
PackagePassedToUninstallPackage = package;
ForceRemovePassedToUninstallPackage = forceRemove;
RemoveDependenciesPassedToUninstallPackage = removeDependencies;
ForceRemovePassedToUninstallPackage = uninstallAction.ForceRemove;
RemoveDependenciesPassedToUninstallPackage = uninstallAction.RemoveDependencies;
IsRefreshProjectBrowserCalledWhenUninstallPackageCalled = FakeProjectService.IsRefreshProjectBrowserCalled;
}
public void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies)
{
throw new NotImplementedException();
}
public IEnumerable<PackageOperation> PackageOperationsPassedToInstallPackage;
public void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions)
public void InstallPackage(IPackage package, InstallPackageAction installAction)
{
PackagePassedToInstallPackage = package;
IgnoreDependenciesPassedToInstallPackage = ignoreDependencies;
PackageOperationsPassedToInstallPackage = operations;
AllowPrereleaseVersionsPassedToInstallPackage = allowPrereleaseVersions;
IgnoreDependenciesPassedToInstallPackage = installAction.IgnoreDependencies;
PackageOperationsPassedToInstallPackage = installAction.Operations;
AllowPrereleaseVersionsPassedToInstallPackage = installAction.AllowPrereleaseVersions;
IsRefreshProjectBrowserCalledWhenInstallPackageCalled = FakeProjectService.IsRefreshProjectBrowserCalled;
}
@ -76,12 +81,13 @@ namespace ICSharpCode.PackageManagement.Design @@ -76,12 +81,13 @@ namespace ICSharpCode.PackageManagement.Design
public List<PackageOperation> PackageOperationsToReturnFromGetInstallPackageOperations = new List<PackageOperation>();
public IPackage PackagePassedToGetInstallPackageOperations;
public bool IgnoreDependenciesPassedToGetInstallPackageOperations;
public bool AllowPrereleaseVersionsPassedToGetInstallPackageOperations;
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction)
{
PackagePassedToGetInstallPackageOperations = package;
IgnoreDependenciesPassedToGetInstallPackageOperations = ignoreDependencies;
AllowPrereleaseVersionsPassedToInstallPackage = allowPrereleaseVersions;
IgnoreDependenciesPassedToGetInstallPackageOperations = installAction.IgnoreDependencies;
AllowPrereleaseVersionsPassedToGetInstallPackageOperations = installAction.AllowPrereleaseVersions;
return PackageOperationsToReturnFromGetInstallPackageOperations;
}
@ -89,12 +95,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -89,12 +95,12 @@ namespace ICSharpCode.PackageManagement.Design
public IEnumerable<PackageOperation> PackageOperationsPassedToUpdatePackage;
public bool UpdateDependenciesPassedToUpdatePackage;
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions)
public void UpdatePackage(IPackage package, UpdatePackageAction updateAction)
{
PackagePassedToUpdatePackage = package;
PackageOperationsPassedToUpdatePackage = operations;
UpdateDependenciesPassedToUpdatePackage = updateDependencies;
AllowPrereleaseVersionsPassedToInstallPackage = allowPrereleaseVersions;
PackageOperationsPassedToUpdatePackage = updateAction.Operations;
UpdateDependenciesPassedToUpdatePackage = updateAction.UpdateDependencies;
AllowPrereleaseVersionsPassedToInstallPackage = updateAction.AllowPrereleaseVersions;
}
public void FirePackageInstalled(PackageOperationEventArgs e)

5
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUpdatePackageAction.cs

@ -9,6 +9,11 @@ namespace ICSharpCode.PackageManagement.Design @@ -9,6 +9,11 @@ namespace ICSharpCode.PackageManagement.Design
{
public bool IsExecuted;
public FakeUpdatePackageAction()
: this(new FakePackageManagementProject())
{
}
public FakeUpdatePackageAction(IPackageManagementProject project)
: base(project, null)
{

8
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs

@ -29,11 +29,11 @@ namespace ICSharpCode.PackageManagement @@ -29,11 +29,11 @@ namespace ICSharpCode.PackageManagement
IQueryable<IPackage> GetPackages();
IEnumerable<IPackage> GetPackagesInReverseDependencyOrder();
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions);
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction);
void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions);
void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions);
void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies);
void InstallPackage(IPackage package, InstallPackageAction installAction);
void UpdatePackage(IPackage package, UpdatePackageAction updateAction);
void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction);
InstallPackageAction CreateInstallPackageAction();
UninstallPackageAction CreateUninstallPackageAction();

3
src/AddIns/Misc/PackageManagement/Project/Src/IPackageOperationResolverFactory.cs

@ -12,7 +12,6 @@ namespace ICSharpCode.PackageManagement @@ -12,7 +12,6 @@ namespace ICSharpCode.PackageManagement
IPackageRepository localRepository,
IPackageRepository sourceRepository,
ILogger logger,
bool ignoreDependencies,
bool allowPrereleaseVersions);
InstallPackageAction installAction);
}
}

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

@ -11,9 +11,10 @@ namespace ICSharpCode.PackageManagement @@ -11,9 +11,10 @@ namespace ICSharpCode.PackageManagement
{
ISharpDevelopProjectManager ProjectManager { get; }
void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions);
void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions);
void InstallPackage(IPackage package, InstallPackageAction installAction);
void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction);
void UpdatePackage(IPackage package, UpdatePackageAction updateAction);
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions);
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction);
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/InstallPackageAction.cs

@ -23,12 +23,12 @@ namespace ICSharpCode.PackageManagement @@ -23,12 +23,12 @@ namespace ICSharpCode.PackageManagement
protected override IEnumerable<PackageOperation> GetPackageOperations()
{
return Project.GetInstallPackageOperations(Package, IgnoreDependencies, AllowPrereleaseVersions);
return Project.GetInstallPackageOperations(Package, this);
}
protected override void ExecuteCore()
{
Project.InstallPackage(Package, Operations, IgnoreDependencies, AllowPrereleaseVersions);
Project.InstallPackage(Package, this);
OnParentPackageInstalled();
}
}

16
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs

@ -84,24 +84,24 @@ namespace ICSharpCode.PackageManagement @@ -84,24 +84,24 @@ namespace ICSharpCode.PackageManagement
return projectManager.LocalRepository.GetPackages();
}
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction)
{
return packageManager.GetInstallPackageOperations(package, ignoreDependencies, allowPrereleaseVersions);
return packageManager.GetInstallPackageOperations(package, installAction);
}
public void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions)
public void InstallPackage(IPackage package, InstallPackageAction installAction)
{
packageManager.InstallPackage(package, operations, ignoreDependencies, allowPrereleaseVersions);
packageManager.InstallPackage(package, installAction);
}
public void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies)
public void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction)
{
packageManager.UninstallPackage(package, forceRemove, removeDependencies);
packageManager.UninstallPackage(package, uninstallAction);
}
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions)
public void UpdatePackage(IPackage package, UpdatePackageAction updateAction)
{
packageManager.UpdatePackage(package, operations, updateDependencies, allowPrereleaseVersions);
packageManager.UpdatePackage(package, updateAction);
}
public InstallPackageAction CreateInstallPackageAction()

10
src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs

@ -12,10 +12,14 @@ namespace ICSharpCode.PackageManagement @@ -12,10 +12,14 @@ namespace ICSharpCode.PackageManagement
IPackageRepository localRepository,
IPackageRepository sourceRepository,
ILogger logger,
bool ignoreDependencies,
bool allowPrereleaseVersions)
InstallPackageAction installAction)
{
return new InstallWalker(localRepository, sourceRepository, logger, ignoreDependencies, allowPrereleaseVersions);
return new InstallWalker(
localRepository,
sourceRepository,
logger,
installAction.IgnoreDependencies,
installAction.AllowPrereleaseVersions);
}
}
}

5
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

@ -170,7 +170,8 @@ namespace ICSharpCode.PackageManagement @@ -170,7 +170,8 @@ namespace ICSharpCode.PackageManagement
{
IPackageManagementProject project = GetSingleProjectSelected();
project.Logger = logger;
packageOperations = project.GetInstallPackageOperations(package, false, false);
var installAction = project.CreateInstallPackageAction();
packageOperations = project.GetInstallPackageOperations(package, installAction);
}
IPackageManagementProject GetSingleProjectSelected()
@ -404,7 +405,7 @@ namespace ICSharpCode.PackageManagement @@ -404,7 +405,7 @@ namespace ICSharpCode.PackageManagement
{
IPackageManagementProject project = selectedProject.Project;
project.Logger = logger;
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, false, false);
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, project.CreateInstallPackageAction());
return GetPackagesRequiringLicenseAcceptance(operations);
}

30
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManager.cs

@ -64,12 +64,12 @@ namespace ICSharpCode.PackageManagement @@ -64,12 +64,12 @@ namespace ICSharpCode.PackageManagement
InstallPackage(package, ignoreDependencies, allowPreleaseVersions);
}
public void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations, bool ignoreDependencies, bool allowPrereleaseVersions)
public void InstallPackage(IPackage package, InstallPackageAction installAction)
{
foreach (PackageOperation operation in operations) {
foreach (PackageOperation operation in installAction.Operations) {
Execute(operation);
}
AddPackageReference(package, ignoreDependencies, allowPrereleaseVersions);
AddPackageReference(package, installAction.IgnoreDependencies, installAction.AllowPrereleaseVersions);
}
void AddPackageReference(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
@ -83,6 +83,11 @@ namespace ICSharpCode.PackageManagement @@ -83,6 +83,11 @@ namespace ICSharpCode.PackageManagement
AddPackageReference(package, ignoreDependencies, allowPrereleaseVersions);
}
public void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction)
{
UninstallPackage(package, uninstallAction.ForceRemove, uninstallAction.RemoveDependencies);
}
public override void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies)
{
ProjectManager.RemovePackageReference(package.Id, forceRemove, removeDependencies);
@ -97,33 +102,32 @@ namespace ICSharpCode.PackageManagement @@ -97,33 +102,32 @@ namespace ICSharpCode.PackageManagement
return sharedRepository.IsReferenced(package.Id, package.Version);
}
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
public IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction)
{
IPackageOperationResolver resolver = CreateInstallPackageOperationResolver(ignoreDependencies, allowPrereleaseVersions);
IPackageOperationResolver resolver = CreateInstallPackageOperationResolver(installAction);
return resolver.ResolveOperations(package);
}
IPackageOperationResolver CreateInstallPackageOperationResolver(bool ignoreDependencies, bool allowPrereleaseVersions)
IPackageOperationResolver CreateInstallPackageOperationResolver(InstallPackageAction installAction)
{
return packageOperationResolverFactory.CreateInstallPackageOperationResolver(
LocalRepository,
SourceRepository,
Logger,
ignoreDependencies,
allowPrereleaseVersions);
installAction);
}
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations, bool updateDependencies, bool allowPrereleaseVersions)
public void UpdatePackage(IPackage package, UpdatePackageAction updateAction)
{
foreach (PackageOperation operation in operations) {
foreach (PackageOperation operation in updateAction.Operations) {
Execute(operation);
}
UpdatePackageReference(package, updateDependencies, allowPrereleaseVersions);
UpdatePackageReference(package, updateAction);
}
void UpdatePackageReference(IPackage package, bool updateDependencies, bool allowPrereleaseVersions)
void UpdatePackageReference(IPackage package, UpdatePackageAction updateAction)
{
ProjectManager.UpdatePackageReference(package.Id, package.Version, updateDependencies, allowPrereleaseVersions);
ProjectManager.UpdatePackageReference(package.Id, package.Version, updateAction.UpdateDependencies, updateAction.AllowPrereleaseVersions);
}
}
}

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

@ -27,7 +27,7 @@ namespace ICSharpCode.PackageManagement @@ -27,7 +27,7 @@ namespace ICSharpCode.PackageManagement
protected override void ExecuteCore()
{
Project.UninstallPackage(Package, ForceRemove, RemoveDependencies);
Project.UninstallPackage(Package, this);
OnParentPackageUninstalled();
}

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

@ -24,13 +24,16 @@ namespace ICSharpCode.PackageManagement @@ -24,13 +24,16 @@ namespace ICSharpCode.PackageManagement
protected override IEnumerable<PackageOperation> GetPackageOperations()
{
return Project.GetInstallPackageOperations(Package, !UpdateDependencies, AllowPrereleaseVersions);
var installAction = Project.CreateInstallPackageAction();
installAction.AllowPrereleaseVersions = AllowPrereleaseVersions;
installAction.IgnoreDependencies = !UpdateDependencies;
return Project.GetInstallPackageOperations(Package, installAction);
}
protected override void ExecuteCore()
{
if (ShouldUpdatePackage()) {
Project.UpdatePackage(Package, Operations, UpdateDependencies, AllowPrereleaseVersions);
Project.UpdatePackage(Package, this);
OnParentPackageInstalled();
}
}

9
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ExceptionThrowingPackageManagementProject.cs

@ -17,7 +17,10 @@ namespace PackageManagement.Tests.Helpers @@ -17,7 +17,10 @@ namespace PackageManagement.Tests.Helpers
public override InstallPackageAction CreateInstallPackageAction()
{
throw ExceptionToThrowWhenCreateInstallPackageActionCalled;
if (ExceptionToThrowWhenCreateInstallPackageActionCalled != null) {
throw ExceptionToThrowWhenCreateInstallPackageActionCalled;
}
return base.CreateInstallPackageAction();
}
public override UninstallPackageAction CreateUninstallPackageAction()
@ -25,12 +28,12 @@ namespace PackageManagement.Tests.Helpers @@ -25,12 +28,12 @@ namespace PackageManagement.Tests.Helpers
throw ExceptionToThrowWhenCreateUninstallPackageActionCalled;
}
public override IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
public override IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction)
{
if (ExceptionToThrowWhenGetInstallPackageOperationsCalled != null) {
throw ExceptionToThrowWhenGetInstallPackageOperationsCalled;
}
return base.GetInstallPackageOperations(package, ignoreDependencies, allowPrereleaseVersions);
return base.GetInstallPackageOperations(package, installAction);
}
}
}

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageOperationResolverFactory.cs

@ -20,14 +20,13 @@ namespace PackageManagement.Tests.Helpers @@ -20,14 +20,13 @@ namespace PackageManagement.Tests.Helpers
IPackageRepository localRepository,
IPackageRepository sourceRepository,
ILogger logger,
bool ignoreDependencies,
bool allowPrereleaseVersions)
InstallPackageAction installAction)
{
LocalRepositoryPassedToCreateInstallPackageOperationsResolver = localRepository;
SourceRepositoryPassedToCreateInstallPackageOperationsResolver = sourceRepository;
LoggerPassedToCreateInstallPackageOperationResolver = logger;
IgnoreDependenciesPassedToCreateInstallPackageOperationResolver = ignoreDependencies;
AllowPrereleaseVersionsPassedToCreateInstallPackageOperationResolver = allowPrereleaseVersions;
IgnoreDependenciesPassedToCreateInstallPackageOperationResolver = installAction.IgnoreDependencies;
AllowPrereleaseVersionsPassedToCreateInstallPackageOperationResolver = installAction.AllowPrereleaseVersions;
return FakeInstallPackageOperationResolver;
}

137
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs

@ -25,6 +25,9 @@ namespace PackageManagement.Tests @@ -25,6 +25,9 @@ namespace PackageManagement.Tests
FakeProjectManager fakeProjectManager;
FakePackageManager fakePackageManager;
FakePackageManagementEvents fakePackageManagementEvents;
FakeInstallPackageAction fakeInstallAction;
FakeUninstallPackageAction fakeUninstallAction;
FakeUpdatePackageAction fakeUpdateAction;
void CreateProject()
{
@ -42,6 +45,24 @@ namespace PackageManagement.Tests @@ -42,6 +45,24 @@ namespace PackageManagement.Tests
fakePackageManagerFactory);
}
FakeInstallPackageAction CreateFakeInstallAction()
{
fakeInstallAction = new FakeInstallPackageAction();
return fakeInstallAction;
}
FakeUninstallPackageAction CreateFakeUninstallAction()
{
fakeUninstallAction = new FakeUninstallPackageAction(project);
return fakeUninstallAction;
}
FakeUpdatePackageAction CreateFakeUpdateAction()
{
fakeUpdateAction = new FakeUpdatePackageAction(project);
return fakeUpdateAction;
}
[Test]
public void IsInstalled_PackageIsInstalled_ReturnsTrue()
{
@ -120,8 +141,10 @@ namespace PackageManagement.Tests @@ -120,8 +141,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeInstallAction()
.IgnoreDependencies = true;
project.GetInstallPackageOperations(package, ignoreDependencies: true, allowPrereleaseVersions: false);
project.GetInstallPackageOperations(package, fakeInstallAction);
Assert.IsTrue(fakePackageManager.IgnoreDependenciesPassedToGetInstallPackageOperations);
}
@ -131,8 +154,10 @@ namespace PackageManagement.Tests @@ -131,8 +154,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeInstallAction()
.IgnoreDependencies = false;
project.GetInstallPackageOperations(package, ignoreDependencies: false, allowPrereleaseVersions: false);
project.GetInstallPackageOperations(package, fakeInstallAction);
Assert.IsFalse(fakePackageManager.IgnoreDependenciesPassedToGetInstallPackageOperations);
}
@ -142,8 +167,10 @@ namespace PackageManagement.Tests @@ -142,8 +167,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var expectedPackage = new FakePackage();
project.GetInstallPackageOperations(expectedPackage, true, false);
CreateFakeInstallAction()
.IgnoreDependencies = true;
project.GetInstallPackageOperations(expectedPackage, fakeInstallAction);
IPackage actualPackage = fakePackageManager.PackagePassedToGetInstallPackageOperations;
@ -155,8 +182,10 @@ namespace PackageManagement.Tests @@ -155,8 +182,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, true, false);
CreateFakeInstallAction()
.IgnoreDependencies = true;
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, fakeInstallAction);
IEnumerable<PackageOperation> expectedOperations = fakePackageManager.PackageOperationsToReturnFromGetInstallPackageOperations;
@ -190,8 +219,10 @@ namespace PackageManagement.Tests @@ -190,8 +219,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeInstallAction()
.Package = package;
project.InstallPackage(package, null, true, false);
project.InstallPackage(package, fakeInstallAction);
IPackage expectedPackage = fakePackageManager.PackagePassedToInstallPackage;
@ -202,7 +233,9 @@ namespace PackageManagement.Tests @@ -202,7 +233,9 @@ namespace PackageManagement.Tests
public void InstallPackage_IgnoreDependenciesIsTrue_DependenciesAreIgnoredWhenPackageIsInstalled()
{
CreateProject();
project.InstallPackage(null, null, true, false);
CreateFakeInstallAction()
.IgnoreDependencies = true;
project.InstallPackage(null, fakeInstallAction);
Assert.IsTrue(fakePackageManager.IgnoreDependenciesPassedToInstallPackage);
}
@ -211,7 +244,9 @@ namespace PackageManagement.Tests @@ -211,7 +244,9 @@ namespace PackageManagement.Tests
public void InstallPackage_IgnoreDependenciesIsFalse_DependenciesAreNotIgnoredWhenPackageIsInstalled()
{
CreateProject();
project.InstallPackage(null, null, false, false);
CreateFakeInstallAction()
.IgnoreDependencies = false;
project.InstallPackage(null, fakeInstallAction);
Assert.IsFalse(fakePackageManager.IgnoreDependenciesPassedToInstallPackage);
}
@ -221,7 +256,9 @@ namespace PackageManagement.Tests @@ -221,7 +256,9 @@ namespace PackageManagement.Tests
{
CreateProject();
var expectedOperations = new List<PackageOperation>();
project.InstallPackage(null, expectedOperations, false, false);
CreateFakeInstallAction()
.Operations = expectedOperations;
project.InstallPackage(null, fakeInstallAction);
IEnumerable<PackageOperation> actualOperations = fakePackageManager.PackageOperationsPassedToInstallPackage;
@ -241,9 +278,12 @@ namespace PackageManagement.Tests @@ -241,9 +278,12 @@ namespace PackageManagement.Tests
public void UninstallPackage_PackagePassed_PackageUninstalled()
{
CreateProject();
CreateFakeUninstallAction();
fakeUninstallAction.ForceRemove = true;
fakeUninstallAction.RemoveDependencies = true;
var package = new FakePackage();
project.UninstallPackage(package, true, true);
project.UninstallPackage(package, fakeUninstallAction);
IPackage expectedPackage = fakePackageManager.PackagePassedToUninstallPackage;
@ -254,7 +294,11 @@ namespace PackageManagement.Tests @@ -254,7 +294,11 @@ namespace PackageManagement.Tests
public void UninstallPackage_ForceRemoveIsTrue_PackageUninstallIsForced()
{
CreateProject();
project.UninstallPackage(null, forceRemove: true, removeDependencies: false);
CreateFakeUninstallAction();
fakeUninstallAction.ForceRemove = true;
fakeUninstallAction.RemoveDependencies = false;
project.UninstallPackage(null, fakeUninstallAction);
Assert.IsTrue(fakePackageManager.ForceRemovePassedToUninstallPackage);
}
@ -263,7 +307,11 @@ namespace PackageManagement.Tests @@ -263,7 +307,11 @@ namespace PackageManagement.Tests
public void UninstallPackage_ForceRemoveIsFalse_PackageUninstallIsNotForced()
{
CreateProject();
project.UninstallPackage(null, forceRemove: false, removeDependencies: true);
CreateFakeUninstallAction();
fakeUninstallAction.ForceRemove = false;
fakeUninstallAction.RemoveDependencies = true;
project.UninstallPackage(null, fakeUninstallAction);
Assert.IsFalse(fakePackageManager.ForceRemovePassedToUninstallPackage);
}
@ -272,7 +320,11 @@ namespace PackageManagement.Tests @@ -272,7 +320,11 @@ namespace PackageManagement.Tests
public void UninstallPackage_RemoveDependenciesIsTrue_PackageDependenciesIsRemoved()
{
CreateProject();
project.UninstallPackage(null, forceRemove: false, removeDependencies: true);
CreateFakeUninstallAction();
fakeUninstallAction.ForceRemove = false;
fakeUninstallAction.RemoveDependencies = true;
project.UninstallPackage(null, fakeUninstallAction);
Assert.IsTrue(fakePackageManager.RemoveDependenciesPassedToUninstallPackage);
}
@ -281,7 +333,11 @@ namespace PackageManagement.Tests @@ -281,7 +333,11 @@ namespace PackageManagement.Tests
public void UninstallPackage_RemoveDependenciesIsFalse_PackageDependenciesNotRemoved()
{
CreateProject();
project.UninstallPackage(null, forceRemove: true, removeDependencies: false);
CreateFakeUninstallAction();
fakeUninstallAction.ForceRemove = true;
fakeUninstallAction.RemoveDependencies = false;
project.UninstallPackage(null, fakeUninstallAction);
Assert.IsFalse(fakePackageManager.RemoveDependenciesPassedToUninstallPackage);
}
@ -291,8 +347,10 @@ namespace PackageManagement.Tests @@ -291,8 +347,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeUpdateAction()
.UpdateDependencies = true;
project.UpdatePackage(package, null, true, false);
project.UpdatePackage(package, fakeUpdateAction);
IPackage expectedPackage = fakePackageManager.PackagePassedToUpdatePackage;
@ -303,7 +361,10 @@ namespace PackageManagement.Tests @@ -303,7 +361,10 @@ namespace PackageManagement.Tests
public void UpdatePackage_UpdateDependenciesIsTrue_DependenciesUpdatedWhenPackageIsUpdated()
{
CreateProject();
project.UpdatePackage(null, null, true, false);
CreateFakeUpdateAction()
.UpdateDependencies = true;
project.UpdatePackage(null, fakeUpdateAction);
Assert.IsTrue(fakePackageManager.UpdateDependenciesPassedToUpdatePackage);
}
@ -312,7 +373,10 @@ namespace PackageManagement.Tests @@ -312,7 +373,10 @@ namespace PackageManagement.Tests
public void UpdatePackage_UpdateDependenciesIsFalse_DependenciesAreNotUpdatedWhenPackageIsUpdated()
{
CreateProject();
project.UpdatePackage(null, null, false, false);
CreateFakeUpdateAction()
.UpdateDependencies = false;
project.UpdatePackage(null, fakeUpdateAction);
Assert.IsFalse(fakePackageManager.UpdateDependenciesPassedToUpdatePackage);
}
@ -322,7 +386,10 @@ namespace PackageManagement.Tests @@ -322,7 +386,10 @@ namespace PackageManagement.Tests
{
CreateProject();
var expectedOperations = new List<PackageOperation>();
project.UpdatePackage(null, expectedOperations, false, false);
CreateFakeUpdateAction()
.Operations = expectedOperations;
project.UpdatePackage(null, fakeUpdateAction);
IEnumerable<PackageOperation> actualOperations = fakePackageManager.PackageOperationsPassedToUpdatePackage;
@ -505,7 +572,9 @@ namespace PackageManagement.Tests @@ -505,7 +572,9 @@ namespace PackageManagement.Tests
public void InstallPackage_AllowPrereleaseVersionsIsTrue_PrereleaseVersionsAreNotAllowedWhenPackageIsInstalled()
{
CreateProject();
project.InstallPackage(null, null, false, allowPrereleaseVersions: false);
CreateFakeInstallAction()
.AllowPrereleaseVersions = false;
project.InstallPackage(null, fakeInstallAction);
Assert.IsFalse(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
}
@ -514,7 +583,9 @@ namespace PackageManagement.Tests @@ -514,7 +583,9 @@ namespace PackageManagement.Tests
public void InstallPackage_AllowPrereleaseVersionsIsFalse_PrereleaseVersionsAreAllowedWhenPackageIsInstalled()
{
CreateProject();
project.InstallPackage(null, null, false, allowPrereleaseVersions: true);
CreateFakeInstallAction()
.AllowPrereleaseVersions = true;
project.InstallPackage(null, fakeInstallAction);
Assert.IsTrue(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
}
@ -524,10 +595,12 @@ namespace PackageManagement.Tests @@ -524,10 +595,12 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeInstallAction()
.AllowPrereleaseVersions = true;
project.GetInstallPackageOperations(package, false, allowPrereleaseVersions: true);
project.GetInstallPackageOperations(package, fakeInstallAction);
Assert.IsTrue(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
Assert.IsTrue(fakePackageManager.AllowPrereleaseVersionsPassedToGetInstallPackageOperations);
}
[Test]
@ -535,17 +608,22 @@ namespace PackageManagement.Tests @@ -535,17 +608,22 @@ namespace PackageManagement.Tests
{
CreateProject();
var package = new FakePackage();
CreateFakeInstallAction()
.AllowPrereleaseVersions = false;
project.GetInstallPackageOperations(package, fakeInstallAction);
project.GetInstallPackageOperations(package, false, allowPrereleaseVersions: false);
Assert.IsFalse(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
Assert.IsFalse(fakePackageManager.AllowPrereleaseVersionsPassedToGetInstallPackageOperations);
}
[Test]
public void UpdatePackage_AllowPrereleaseVersionsIsTrue_PrereleaseVersionsNotAllowedWhenPackageIsUpdated()
{
CreateProject();
project.UpdatePackage(null, null, false, allowPrereleaseVersions: true);
CreateFakeUpdateAction()
.AllowPrereleaseVersions = true;
project.UpdatePackage(null, fakeUpdateAction);
Assert.IsTrue(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
}
@ -554,7 +632,10 @@ namespace PackageManagement.Tests @@ -554,7 +632,10 @@ namespace PackageManagement.Tests
public void UpdatePackage_AllowPrereleaseVersionsIsFalse_PrereleaseVersionsNotAllowedWhenPackageIsUpdated()
{
CreateProject();
project.UpdatePackage(null, null, false, allowPrereleaseVersions: false);
CreateFakeUpdateAction()
.AllowPrereleaseVersions = false;
project.UpdatePackage(null, fakeUpdateAction);
Assert.IsFalse(fakePackageManager.AllowPrereleaseVersionsPassedToInstallPackage);
}

35
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

@ -112,7 +112,11 @@ namespace PackageManagement.Tests @@ -112,7 +112,11 @@ namespace PackageManagement.Tests
{
FakePackage package = CreateFakePackage();
var operations = new List<PackageOperation>();
packageManager.InstallPackage(package, operations, ignoreDependencies, allowPrereleaseVersions);
var installAction = new FakeInstallPackageAction();
installAction.IgnoreDependencies = ignoreDependencies;
installAction.AllowPrereleaseVersions = allowPrereleaseVersions;
installAction.Operations = operations;
packageManager.InstallPackage(package, installAction);
return package;
}
@ -122,7 +126,9 @@ namespace PackageManagement.Tests @@ -122,7 +126,9 @@ namespace PackageManagement.Tests
operation
};
FakePackage package = CreateFakePackage();
packageManager.InstallPackage(package, operations, false, false);
var installAction = new FakeInstallPackageAction();
installAction.Operations = operations;
packageManager.InstallPackage(package, installAction);
return package;
}
@ -214,14 +220,19 @@ namespace PackageManagement.Tests @@ -214,14 +220,19 @@ namespace PackageManagement.Tests
bool ignoreDependencies,
bool allowPrereleaseVersions)
{
return packageManager.GetInstallPackageOperations(package, ignoreDependencies, allowPrereleaseVersions);
var fakeInstallAction = new FakeInstallPackageAction();
fakeInstallAction.IgnoreDependencies = ignoreDependencies;
fakeInstallAction.AllowPrereleaseVersions = allowPrereleaseVersions;
return packageManager.GetInstallPackageOperations(package, fakeInstallAction);
}
FakePackage UpdatePackageWithNoPackageOperations()
{
FakePackage package = CreateFakePackage();
var operations = new List<PackageOperation>();
packageManager.UpdatePackage(package, operations, true, false);
var updateAction = new FakeUpdatePackageAction();
updateAction.Operations = new List<PackageOperation>();
updateAction.UpdateDependencies = true;
packageManager.UpdatePackage(package, updateAction);
return package;
}
@ -231,7 +242,10 @@ namespace PackageManagement.Tests @@ -231,7 +242,10 @@ namespace PackageManagement.Tests
operation
};
FakePackage package = CreateFakePackage();
packageManager.UpdatePackage(package, operations, true, false);
var updateAction = new FakeUpdatePackageAction();
updateAction.Operations = operations;
updateAction.UpdateDependencies = true;
packageManager.UpdatePackage(package, updateAction);
return package;
}
@ -245,11 +259,14 @@ namespace PackageManagement.Tests @@ -245,11 +259,14 @@ namespace PackageManagement.Tests
return UpdatePackageWithNoPackageOperations(false, true);
}
FakePackage UpdatePackageWithNoPackageOperations(bool ignoreDependencies, bool allowPrereleaseVersions)
FakePackage UpdatePackageWithNoPackageOperations(bool updateDependencies, bool allowPrereleaseVersions)
{
FakePackage package = CreateFakePackage();
var operations = new List<PackageOperation>();
packageManager.UpdatePackage(package, operations, ignoreDependencies, allowPrereleaseVersions);
var updateAction = new FakeUpdatePackageAction();
updateAction.Operations = new List<PackageOperation>();
updateAction.UpdateDependencies = updateDependencies;
updateAction.AllowPrereleaseVersions = allowPrereleaseVersions;
packageManager.UpdatePackage(package, updateAction);
return package;
}

Loading…
Cancel
Save