Browse Source

Support DependencyVersion parameter in Install-Package cmdlet

pull/701/head
Matt Ward 10 years ago
parent
commit
d664d6def5
  1. 6
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InstallPackageCmdlet.cs
  2. 23
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs
  3. 2
      src/AddIns/Misc/PackageManagement/Project/Src/InstallPackageAction.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs
  5. 7
      src/AddIns/Misc/PackageManagement/Test/Src/InstallPackageActionTests.cs

6
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InstallPackageCmdlet.cs

@ -62,6 +62,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -62,6 +62,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets
[Parameter]
public FileConflictAction FileConflictAction { get; set; }
[Parameter]
public DependencyVersion? DependencyVersion { get; set; }
protected override void ProcessRecord()
{
ThrowErrorIfProjectNotOpen();
@ -99,6 +102,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -99,6 +102,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets
action.IgnoreDependencies = IgnoreDependencies.IsPresent;
action.AllowPrereleaseVersions = IncludePrerelease.IsPresent;
action.PackageScriptRunner = this;
if (DependencyVersion.HasValue) {
action.DependencyVersion = DependencyVersion.Value;
}
return action;
}
}

23
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs

@ -335,5 +335,28 @@ namespace PackageManagement.Cmdlets.Tests @@ -335,5 +335,28 @@ namespace PackageManagement.Cmdlets.Tests
fakeConsoleHost.AssertLoggerIsDisposed();
Assert.AreEqual(cmdlet, fakeConsoleHost.CmdletLoggerUsedToCreateLogger);
}
[Test]
public void ProcessRecord_DependencyVersionSetToHighest_DependencyVersionUsedWhenInstallingPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
cmdlet.DependencyVersion = DependencyVersion.Highest;
RunCmdlet();
DependencyVersion actualDependencyVersion = fakeProject.LastInstallPackageCreated.DependencyVersion;
Assert.AreEqual(DependencyVersion.Highest, actualDependencyVersion);
}
[Test]
public void ProcessRecord_DependencyVersionNotSett_DependencyVersionSetToLowestWhenInstallingPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
RunCmdlet();
DependencyVersion actualDependencyVersion = fakeProject.LastInstallPackageCreated.DependencyVersion;
Assert.AreEqual(DependencyVersion.Lowest, actualDependencyVersion);
}
}
}

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

@ -31,9 +31,11 @@ namespace ICSharpCode.PackageManagement @@ -31,9 +31,11 @@ namespace ICSharpCode.PackageManagement
IPackageManagementEvents packageManagementEvents)
: base(project, packageManagementEvents)
{
DependencyVersion = DependencyVersion.Lowest;
}
public bool IgnoreDependencies { get; set; }
public DependencyVersion DependencyVersion { get; set; }
protected override IEnumerable<PackageOperation> GetPackageOperations()
{

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

@ -36,7 +36,7 @@ namespace ICSharpCode.PackageManagement @@ -36,7 +36,7 @@ namespace ICSharpCode.PackageManagement
logger,
installAction.IgnoreDependencies,
installAction.AllowPrereleaseVersions,
DependencyVersion.Lowest);
installAction.DependencyVersion);
}
public IPackageOperationResolver CreateUpdatePackageOperationResolver(IPackageRepository localRepository, IPackageRepository sourceRepository, ILogger logger, IUpdatePackageSettings settings)

7
src/AddIns/Misc/PackageManagement/Test/Src/InstallPackageActionTests.cs

@ -484,5 +484,12 @@ namespace PackageManagement.Tests @@ -484,5 +484,12 @@ namespace PackageManagement.Tests
Assert.IsFalse(fileService.IsOpenFileCalled);
Assert.IsTrue(monitor.IsDisposed);
}
[Test]
public void DependencyVersion_DefaultValue_IsLowest()
{
CreateAction();
Assert.AreEqual(DependencyVersion.Lowest, action.DependencyVersion);
}
}
}

Loading…
Cancel
Save