Browse Source

Use NuGet-Operation update HTTP header when updating packages from dialog.

pull/53/merge
Matt Ward 13 years ago
parent
commit
586adc1d54
  1. 5
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageFromRepositoryExtensions.cs
  2. 5
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageRepositoryExtensions.cs
  3. 7
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  4. 5
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackageViewModel.cs
  5. 29
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs

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

@ -11,5 +11,10 @@ namespace ICSharpCode.PackageManagement @@ -11,5 +11,10 @@ namespace ICSharpCode.PackageManagement
{
return package.Repository.StartInstallOperation(package.Id);
}
public static IDisposable StartUpdateOperation(this IPackageFromRepository package)
{
return package.Repository.StartUpdateOperation(package.Id);
}
}
}

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

@ -12,5 +12,10 @@ namespace ICSharpCode.PackageManagement @@ -12,5 +12,10 @@ namespace ICSharpCode.PackageManagement
{
return repository.StartOperation(RepositoryOperationNames.Install, mainPackageId);
}
public static IDisposable StartUpdateOperation(this IPackageRepository repository, string mainPackageId = null)
{
return repository.StartOperation(RepositoryOperationNames.Update, mainPackageId);
}
}
}

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

@ -181,12 +181,17 @@ namespace ICSharpCode.PackageManagement @@ -181,12 +181,17 @@ namespace ICSharpCode.PackageManagement
{
ClearReportedMessages();
logger.LogAddingPackage();
using (IDisposable operation = package.StartInstallOperation()) {
using (IDisposable operation = StartInstallOperation(package)) {
TryInstallingPackage();
}
logger.LogAfterPackageOperationCompletes();
}
protected virtual IDisposable StartInstallOperation(IPackageFromRepository package)
{
return package.StartInstallOperation();
}
void ClearReportedMessages()
{
packageManagementEvents.OnPackageOperationsStarting();

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

@ -24,5 +24,10 @@ namespace ICSharpCode.PackageManagement @@ -24,5 +24,10 @@ namespace ICSharpCode.PackageManagement
{
return project.CreateUpdatePackageAction();
}
protected override IDisposable StartInstallOperation(IPackageFromRepository package)
{
return package.StartUpdateOperation();
}
}
}

29
src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs

@ -128,5 +128,34 @@ namespace PackageManagement.Tests @@ -128,5 +128,34 @@ namespace PackageManagement.Tests
Assert.AreEqual(expectedPackage, actualPackage);
}
[Test]
public void AddPackage_PackageRepositoryIsOperationAwareAndPackageAddedSuccessfully_UpdateOperationStartedForPackage()
{
CreateViewModel();
var operationAwareRepository = new FakeOperationAwarePackageRepository();
FakePackage fakePackage = viewModel.FakePackage;
fakePackage.FakePackageRepository = operationAwareRepository;
fakePackage.Id = "MyPackage";
viewModel.AddPackage();
Assert.AreEqual(RepositoryOperationNames.Update, operationAwareRepository.OperationStarted);
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
}
[Test]
public void AddPackage_PackageRepositoryIsOperationAwareAndPackageAddedSuccessfully_UpdateperationStartedIsDisposed()
{
CreateViewModel();
var operationAwareRepository = new FakeOperationAwarePackageRepository();
FakePackage fakePackage = viewModel.FakePackage;
fakePackage.FakePackageRepository = operationAwareRepository;
fakePackage.Id = "MyPackage";
viewModel.AddPackage();
operationAwareRepository.AssertOperationIsDisposed();
}
}
}

Loading…
Cancel
Save