Browse Source

Use NuGet-Operation update HTTP header when using Update-Package cmdlet.

pull/53/merge
Matt Ward 12 years ago
parent
commit
4da10a963a
  1. 13
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs
  2. 54
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/UpdatePackageCmdletTests.cs
  3. 3
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUpdatePackageAction.cs

13
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs

@ -129,7 +129,14 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -129,7 +129,14 @@ namespace ICSharpCode.PackageManagement.Cmdlets
{
IPackageManagementProject project = GetProject();
UpdatePackageAction action = CreateUpdatePackageAction(project);
action.Execute();
using (IDisposable operation = StartUpdateOperation(action)) {
action.Execute();
}
}
IDisposable StartUpdateOperation(UpdatePackageAction action)
{
return action.Project.SourceRepository.StartUpdateOperation(action.PackageId);
}
IPackageManagementProject GetProject()
@ -163,7 +170,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -163,7 +170,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets
updateActions.PackageScriptRunner = this;
foreach (UpdatePackageAction action in updateActions.CreateActions()) {
action.Execute();
using (IDisposable operation = StartUpdateOperation(action)) {
action.Execute();
}
}
}

54
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/UpdatePackageCmdletTests.cs

@ -37,7 +37,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -37,7 +37,7 @@ namespace PackageManagement.Cmdlets.Tests
fakeUpdateAllPackagesInSolution = fakeUpdateActionsFactory.FakeUpdateAllPackagesInSolution;
fakeUpdatePackageInAllProjects = fakeUpdateActionsFactory.FakeUpdatePackageInAllProjects;
}
FakeUpdatePackageAction UpdatePackageInSingleProjectAction {
get { return fakeProject.FirstFakeUpdatePackageActionCreated; }
}
@ -142,11 +142,12 @@ namespace PackageManagement.Cmdlets.Tests @@ -142,11 +142,12 @@ namespace PackageManagement.Cmdlets.Tests
CreateUpdateActionWhenUpdatingAllPackagesInSolution(packageId2);
}
void CreateUpdateActionWhenUpdatingAllPackagesInSolution(string packageId)
FakeUpdatePackageAction CreateUpdateActionWhenUpdatingAllPackagesInSolution(string packageId)
{
var action = new FakeUpdatePackageAction(fakeProject);
action.PackageId = packageId;
fakeUpdateActionsFactory.FakeUpdateAllPackagesInSolution.FakeActions.Add(action);
return action;
}
void CreateTwoUpdateActionsWhenUpdatingPackageInAllProjects(string packageId1, string packageId2)
@ -155,11 +156,12 @@ namespace PackageManagement.Cmdlets.Tests @@ -155,11 +156,12 @@ namespace PackageManagement.Cmdlets.Tests
CreateUpdateActionWhenUpdatingPackageInAllProjects(packageId2);
}
void CreateUpdateActionWhenUpdatingPackageInAllProjects(string packageId)
FakeUpdatePackageAction CreateUpdateActionWhenUpdatingPackageInAllProjects(string packageId)
{
var action = new FakeUpdatePackageAction(fakeProject);
action.PackageId = packageId;
fakeUpdateActionsFactory.FakeUpdatePackageInAllProjects.FakeActions.Add(action);
return action;
}
[Test]
@ -769,5 +771,51 @@ namespace PackageManagement.Cmdlets.Tests @@ -769,5 +771,51 @@ namespace PackageManagement.Cmdlets.Tests
fakeConsoleHost.AssertFileConflictResolverIsDisposed();
}
[Test]
public void ProcessRecord_PackageIdAndProjectNameSpecifiedSpecifiedAndSourceRepositoryIsOperationAware_UpdateOperationStartedAndDisposedForPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
SetProjectNameParameter("TestProject");
SetIdParameter("Test");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakeProject.FakeSourceRepository = operationAwareRepository;
RunCmdlet();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Update, "Test");
}
[Test]
public void ProcessRecord_PackageIdSpecifiedAndSourceRepositoryIsOperationAware_UpdateOperationStartedAndDisposedForPackage()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
FakeUpdatePackageAction action = CreateUpdateActionWhenUpdatingPackageInAllProjects("Test");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
action.FakeProject.FakeSourceRepository = operationAwareRepository;
RunCmdlet();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Update, "Test");
}
[Test]
public void ProcessRecord_UpdateAllPackagesIsSolutionAndTwoUpdateActionsAndSourceRepositoryIsOperationAware_UpdateOperationStartedAndDisposedForSecondPackage()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
CreateUpdateActionWhenUpdatingAllPackagesInSolution("Test1");
FakeUpdatePackageAction action = CreateUpdateActionWhenUpdatingAllPackagesInSolution("Test2");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
action.FakeProject.FakeSourceRepository = operationAwareRepository;
RunCmdlet();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Update, "Test2");
}
}
}

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

@ -10,6 +10,8 @@ namespace ICSharpCode.PackageManagement.Design @@ -10,6 +10,8 @@ namespace ICSharpCode.PackageManagement.Design
{
public bool IsExecuted;
public FakePackageManagementProject FakeProject;
public FakeUpdatePackageAction()
: this(new FakePackageManagementProject())
{
@ -18,6 +20,7 @@ namespace ICSharpCode.PackageManagement.Design @@ -18,6 +20,7 @@ namespace ICSharpCode.PackageManagement.Design
public FakeUpdatePackageAction(IPackageManagementProject project)
: base(project, null)
{
FakeProject = project as FakePackageManagementProject;
}
protected override void ExecuteCore()

Loading…
Cancel
Save