Browse Source

Use NuGet update methods when updating a package.

pull/21/head
mrward 14 years ago
parent
commit
713fcb745f
  1. 2
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 11
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs
  3. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementService.cs
  4. 1
      src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopPackageManager.cs
  5. 12
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementService.cs
  6. 18
      src/AddIns/Misc/PackageManagement/Project/Src/PackageUpdatesViewModel.cs
  7. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  8. 24
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelFactory.cs
  9. 19
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManager.cs
  10. 32
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackageViewModel.cs
  11. 28
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackageViewModelFactory.cs
  12. 3
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  13. 9
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManager.cs
  14. 13
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProjectManager.cs
  15. 68
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs
  16. 41
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/UpdatePackageHelper.cs
  17. 83
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementServiceTests.cs
  18. 56
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs
  19. 58
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs

2
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -159,6 +159,8 @@ @@ -159,6 +159,8 @@
<Compile Include="Src\SharpDevelopProjectSystem.cs" />
<Compile Include="Src\SharpDevelopProjectSystemFactory.cs" />
<Compile Include="Src\StringToStringCollectionConverter.cs" />
<Compile Include="Src\UpdatedPackageViewModel.cs" />
<Compile Include="Src\UpdatedPackageViewModelFactory.cs" />
<Compile Include="Src\ViewModelBase.cs" />
<Compile Include="Src\ViewModelLocator.cs" />
</ItemGroup>

11
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementService.cs

@ -130,5 +130,16 @@ namespace ICSharpCode.PackageManagement.Design @@ -130,5 +130,16 @@ namespace ICSharpCode.PackageManagement.Design
public IPackageRepository RecentPackageRepository {
get { return FakeRecentPackageRepository; }
}
public IPackageRepository RepositoryPassedToUpdatePackage;
public IPackage PackagePassedToUpdatePackage;
public IEnumerable<PackageOperation> PackageOperationsPassedToUpdatePackage;
public void UpdatePackage(IPackageRepository repository, IPackage package, IEnumerable<PackageOperation> operations)
{
RepositoryPassedToUpdatePackage = repository;
PackagePassedToUpdatePackage = package;
PackageOperationsPassedToUpdatePackage = operations;
}
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementService.cs

@ -19,6 +19,7 @@ namespace ICSharpCode.PackageManagement @@ -19,6 +19,7 @@ namespace ICSharpCode.PackageManagement
void InstallPackage(IPackageRepository repository, IPackage package, IEnumerable<PackageOperation> operations);
void UninstallPackage(IPackageRepository repository, IPackage package);
void UpdatePackage(IPackageRepository repository, IPackage package, IEnumerable<PackageOperation> operations);
PackageManagementOptions Options { get; }

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

@ -13,5 +13,6 @@ namespace ICSharpCode.PackageManagement @@ -13,5 +13,6 @@ namespace ICSharpCode.PackageManagement
void InstallPackage(IPackage package);
void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations);
void UninstallPackage(IPackage package);
void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations);
}
}

12
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementService.cs

@ -187,5 +187,17 @@ namespace ICSharpCode.PackageManagement @@ -187,5 +187,17 @@ namespace ICSharpCode.PackageManagement
{
return packageRepositoryCache.CreateRepository(source);
}
public void UpdatePackage(
IPackageRepository repository,
IPackage package,
IEnumerable<PackageOperation> operations)
{
ISharpDevelopPackageManager packageManager = CreatePackageManager(repository);
packageManager.UpdatePackage(package, operations);
projectService.RefreshProjectBrowser();
RecentPackageRepository.AddPackage(package);
OnPackageInstalled();
}
}
}

18
src/AddIns/Misc/PackageManagement/Project/Src/PackageUpdatesViewModel.cs

@ -21,7 +21,23 @@ namespace ICSharpCode.PackageManagement @@ -21,7 +21,23 @@ namespace ICSharpCode.PackageManagement
IPackageManagementService packageManagementService,
IMessageReporter messageReporter,
ITaskFactory taskFactory)
: base(packageManagementService, messageReporter, taskFactory)
: this(
packageManagementService,
messageReporter,
new LicenseAcceptanceService(),
taskFactory)
{
}
public PackageUpdatesViewModel(
IPackageManagementService packageManagementService,
IMessageReporter messageReporter,
ILicenseAcceptanceService licenseAcceptanceService,
ITaskFactory taskFactory)
: base(
packageManagementService,
new UpdatedPackageViewModelFactory(packageManagementService, licenseAcceptanceService, messageReporter),
taskFactory)
{
this.packageManagementService = packageManagementService;
}

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

@ -297,10 +297,18 @@ namespace ICSharpCode.PackageManagement @@ -297,10 +297,18 @@ namespace ICSharpCode.PackageManagement
void InstallPackage()
{
packageManagementService.InstallPackage(sourcePackageRepository, package, packageOperations);
InstallPackage(sourcePackageRepository, package, packageOperations);
OnPropertyChanged(model => model.IsAdded);
}
protected virtual void InstallPackage(
IPackageRepository sourcePackageRepository,
IPackage package,
IEnumerable<PackageOperation> packageOperations)
{
packageManagementService.InstallPackage(sourcePackageRepository, package, packageOperations);
}
void ReportError(Exception ex)
{
messageReporter.ShowErrorMessage(ex.Message);

24
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelFactory.cs

@ -8,27 +8,27 @@ namespace ICSharpCode.PackageManagement @@ -8,27 +8,27 @@ namespace ICSharpCode.PackageManagement
{
public class PackageViewModelFactory : IPackageViewModelFactory
{
IPackageManagementService packageManagementService;
ILicenseAcceptanceService licenseAcceptanceService;
IMessageReporter messageReporter;
public PackageViewModelFactory(
IPackageManagementService packageManagementService,
ILicenseAcceptanceService licenseAcceptanceService,
IMessageReporter messageReport)
IMessageReporter messageReporter)
{
this.packageManagementService = packageManagementService;
this.licenseAcceptanceService = licenseAcceptanceService;
this.messageReporter = messageReport;
this.PackageManagementService = packageManagementService;
this.LicenseAcceptanceService = licenseAcceptanceService;
this.MessageReporter = messageReporter;
}
public PackageViewModel CreatePackageViewModel(IPackage package)
public virtual PackageViewModel CreatePackageViewModel(IPackage package)
{
return new PackageViewModel(
package,
packageManagementService,
licenseAcceptanceService,
messageReporter);
PackageManagementService,
LicenseAcceptanceService,
MessageReporter);
}
protected IPackageManagementService PackageManagementService { get; private set; }
protected ILicenseAcceptanceService LicenseAcceptanceService { get; private set; }
protected IMessageReporter MessageReporter { get; private set; }
}
}

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

@ -91,5 +91,24 @@ namespace ICSharpCode.PackageManagement @@ -91,5 +91,24 @@ namespace ICSharpCode.PackageManagement
ProjectManager.RemovePackageReference(package.Id, forceRemove, removeDependencies);
base.UninstallPackage(package, forceRemove, removeDependencies);
}
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations)
{
foreach (PackageOperation operation in operations) {
Execute(operation);
}
UpdatePackageReference(package);
}
void UpdatePackageReference(IPackage package)
{
bool updateDependencies = true;
UpdatePackageReference(package, updateDependencies);
}
void UpdatePackageReference(IPackage package, bool updateDependencies)
{
ProjectManager.UpdatePackageReference(package.Id, package.Version, updateDependencies);
}
}
}

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

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class UpdatedPackageViewModel : PackageViewModel
{
IPackageManagementService packageManagementService;
public UpdatedPackageViewModel(
IPackage package,
IPackageManagementService packageManagementService,
ILicenseAcceptanceService licenseAcceptanceService,
IMessageReporter messageReporter)
: base(package, packageManagementService, licenseAcceptanceService, messageReporter)
{
this.packageManagementService = packageManagementService;
}
protected override void InstallPackage(
IPackageRepository sourcePackageRepository,
IPackage package,
IEnumerable<PackageOperation> packageOperations)
{
packageManagementService.UpdatePackage(sourcePackageRepository, package, packageOperations);
}
}
}

28
src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackageViewModelFactory.cs

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class UpdatedPackageViewModelFactory : PackageViewModelFactory
{
public UpdatedPackageViewModelFactory(
IPackageManagementService packageManagementService,
ILicenseAcceptanceService licenseAcceptanceService,
IMessageReporter messageReporter)
: base(packageManagementService, licenseAcceptanceService, messageReporter)
{
}
public override PackageViewModel CreatePackageViewModel(IPackage package)
{
return new UpdatedPackageViewModel(
package,
PackageManagementService,
LicenseAcceptanceService,
MessageReporter);
}
}
}

3
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -106,6 +106,7 @@ @@ -106,6 +106,7 @@
<Compile Include="Src\Helpers\TestableOpenHyperlinkCommand.cs" />
<Compile Include="Src\Helpers\TestableSelectedListBoxItemScrollingBehaviour.cs" />
<Compile Include="Src\Helpers\TestableSharpDevelopProjectSystem.cs" />
<Compile Include="Src\Helpers\TestableUpdatedPackageViewModel.cs" />
<Compile Include="Src\Helpers\TestableViewModelBase.cs" />
<Compile Include="Src\Helpers\Tests\PackageReferenceRepositoryTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@ -113,6 +114,7 @@ @@ -113,6 +114,7 @@
<Compile Include="Src\AvailablePackagesViewModelTests.cs" />
<Compile Include="Src\BooleanToFontWeightConverterTests.cs" />
<Compile Include="Src\DelegateCommandTests.cs" />
<Compile Include="Src\Helpers\UpdatePackageHelper.cs" />
<Compile Include="Src\InstalledPackagesViewModelTests.cs" />
<Compile Include="Src\LicenseAcceptanceViewModelTests.cs" />
<Compile Include="Src\OpenHyperlinkCommandTests.cs" />
@ -136,6 +138,7 @@ @@ -136,6 +138,7 @@
<Compile Include="Src\SharpDevelopPackageManagerTests.cs" />
<Compile Include="Src\SharpDevelopProjectSystemTests.cs" />
<Compile Include="Src\StringToStringCollectionConverterTests.cs" />
<Compile Include="Src\UpdatedPackageViewModelTests.cs" />
<Compile Include="Src\ViewModelBaseTests.cs" />
</ItemGroup>
<ItemGroup>

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

@ -115,6 +115,15 @@ namespace PackageManagement.Tests.Helpers @@ -115,6 +115,15 @@ namespace PackageManagement.Tests.Helpers
throw new NotImplementedException();
}
public IPackage PackagePassedToUpdatePackage;
public IEnumerable<PackageOperation> PackageOperationsPassedToUpdatePackage;
public void UpdatePackage(IPackage package, IEnumerable<PackageOperation> operations)
{
PackagePassedToUpdatePackage = package;
PackageOperationsPassedToUpdatePackage = operations;
}
public void InstallPackage(IPackage package, IEnumerable<PackageOperation> operations)
{
LoggerSetBeforeInstallPackageCalled = Logger;

13
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProjectManager.cs

@ -17,6 +17,9 @@ namespace PackageManagement.Tests.Helpers @@ -17,6 +17,9 @@ namespace PackageManagement.Tests.Helpers
public bool ForcePassedToRemovePackageReference;
public bool RemoveDependenciesPassedToRemovePackageReference;
public IPackage PackagePassedToUpdatePackageReference;
public bool UpdateDependenciesPassedToUpdatePackageReference;
public FakePackageRepository FakeLocalRepository {
get { return LocalRepository as FakePackageRepository; }
}
@ -50,5 +53,15 @@ namespace PackageManagement.Tests.Helpers @@ -50,5 +53,15 @@ namespace PackageManagement.Tests.Helpers
ForcePassedToRemovePackageReference = force;
RemoveDependenciesPassedToRemovePackageReference = removeDependencies;
}
public override void UpdatePackageReference(string packageId, Version version, bool updateDependencies)
{
var package = new FakePackage();
package.Id = packageId;
package.Version = version;
PackagePassedToUpdatePackageReference = package;
UpdateDependenciesPassedToUpdatePackageReference = updateDependencies;
}
}
}

68
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs

@ -0,0 +1,68 @@ @@ -0,0 +1,68 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
namespace PackageManagement.Tests.Helpers
{
public class TestableUpdatedPackageViewModel : UpdatedPackageViewModel
{
public FakePackageOperationResolver FakePackageOperationResolver = new FakePackageOperationResolver();
public FakePackageRepository FakeSourcePackageRepository;
public FakePackageManagementService FakePackageManagementService;
public FakeLicenseAcceptanceService FakeLicenseAcceptanceService;
public FakeMessageReporter FakeMessageReporter;
public FakePackage FakePackage;
public ILogger LoggerUsedWhenCreatingPackageResolver;
public string PackageViewModelAddingPackageMessageFormat = String.Empty;
public string PackageViewModelRemovingPackageMessageFormat = String.Empty;
public TestableUpdatedPackageViewModel()
: this(new FakePackageManagementService())
{
}
public TestableUpdatedPackageViewModel(FakePackageManagementService packageManagementService)
: this(
new FakePackage(),
packageManagementService,
new FakeLicenseAcceptanceService(),
new FakeMessageReporter())
{
}
public TestableUpdatedPackageViewModel(
FakePackage package,
FakePackageManagementService packageManagementService,
FakeLicenseAcceptanceService licenseAcceptanceService,
FakeMessageReporter messageReporter)
: base(
package,
packageManagementService,
licenseAcceptanceService,
messageReporter)
{
this.FakePackage = package;
this.FakePackageManagementService = packageManagementService;
this.FakeLicenseAcceptanceService = licenseAcceptanceService;
this.FakeMessageReporter = messageReporter;
this.FakeSourcePackageRepository = FakePackageManagementService.FakeActivePackageRepository;
}
protected override IPackageOperationResolver CreatePackageOperationResolver(ILogger logger)
{
return FakePackageOperationResolver;
}
protected override string AddingPackageMessageFormat {
get { return PackageViewModelAddingPackageMessageFormat; }
}
protected override string RemovingPackageMessageFormat {
get { return PackageViewModelRemovingPackageMessageFormat; }
}
}
}

41
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/UpdatePackageHelper.cs

@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
namespace PackageManagement.Tests.Helpers
{
public class UpdatePackageHelper
{
PackageManagementService packageManagementService;
public FakePackage TestPackage = new FakePackage() {
Id = "Test"
};
public FakePackageRepository PackageRepository = new FakePackageRepository();
public List<PackageOperation> PackageOperations = new List<PackageOperation>();
public UpdatePackageHelper(PackageManagementService packageManagementService)
{
this.packageManagementService = packageManagementService;
}
public void UpdateTestPackage()
{
packageManagementService.UpdatePackage(PackageRepository, TestPackage, PackageOperations);
}
public FakePackage AddPackageInstallOperation()
{
var package = new FakePackage("Package to install");
var operation = new PackageOperation(package, PackageAction.Install);
PackageOperations.Add(operation);
return package;
}
}
}

83
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementServiceTests.cs

@ -24,6 +24,7 @@ namespace PackageManagement.Tests @@ -24,6 +24,7 @@ namespace PackageManagement.Tests
FakePackageManagementProjectService fakeProjectService;
TestableProject testProject;
InstallPackageHelper installPackageHelper;
UpdatePackageHelper updatePackageHelper;
FakePackageManagementOutputMessagesView fakeOutputMessagesView;
void CreatePackageSources()
@ -53,6 +54,7 @@ namespace PackageManagement.Tests @@ -53,6 +54,7 @@ namespace PackageManagement.Tests
fakeOutputMessagesView);
installPackageHelper = new InstallPackageHelper(packageManagementService);
updatePackageHelper = new UpdatePackageHelper(packageManagementService);
}
[Test]
@ -203,7 +205,7 @@ namespace PackageManagement.Tests @@ -203,7 +205,7 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageInstalled_PackageIsInstalled_EventFiresAfterPackageInstalled()
public void InstallPackage_PackageIsInstalled_EventFiresAfterPackageInstalled()
{
CreatePackageManagementService();
@ -217,7 +219,7 @@ namespace PackageManagement.Tests @@ -217,7 +219,7 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageUninstalled_PackageIsUninstalled_EventFiresAfterPackageUninstalled()
public void UninstallPackage_PackageIsUninstalled_EventFiresAfterPackageUninstalled()
{
CreatePackageManagementService();
@ -484,5 +486,82 @@ namespace PackageManagement.Tests @@ -484,5 +486,82 @@ namespace PackageManagement.Tests
PackageCollectionAssert.AreEqual(expectedPackages, recentPackages);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_PackageInstalled()
{
CreatePackageManagementService();
updatePackageHelper.UpdateTestPackage();
var expectedPackage = updatePackageHelper.TestPackage;
var actualPackage = fakePackageManagerFactory.FakePackageManager.PackagePassedToUpdatePackage;
Assert.AreEqual(expectedPackage, actualPackage);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_RepositoryUsedToCreatePackageManager()
{
CreatePackageManagementService();
updatePackageHelper.UpdateTestPackage();
var expectedRepository = updatePackageHelper.PackageRepository;
var actualRepository = fakePackageManagerFactory.PackageRepositoryPassedToCreatePackageManager;
Assert.AreEqual(expectedRepository, actualRepository);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_PackageOperationsUsedToUpdatePackage()
{
CreatePackageManagementService();
updatePackageHelper.UpdateTestPackage();
var expectedOperations = updatePackageHelper.PackageOperations;
var actualOperations = fakePackageManagerFactory.FakePackageManager.PackageOperationsPassedToUpdatePackage;
Assert.AreEqual(expectedOperations, actualOperations);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_ProjectBrowserIsRefreshed()
{
CreatePackageManagementService();
updatePackageHelper.UpdateTestPackage();
bool refreshed = fakeProjectService.IsRefreshProjectBrowserCalled;
Assert.IsTrue(refreshed);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_PackageUpdateIsAddedToRecentPackagesRepository()
{
CreatePackageManagementService();
updatePackageHelper.UpdateTestPackage();
var recentPackages = packageManagementService.RecentPackageRepository.GetPackages();
var expectedPackages = new FakePackage[] {
updatePackageHelper.TestPackage
};
PackageCollectionAssert.AreEqual(expectedPackages, recentPackages);
}
[Test]
public void UpdatePackage_PackageAndRepositoryPassed_PackageInstalledEventIsFired()
{
CreatePackageManagementService();
IPackage package = null;
packageManagementService.PackageInstalled += (sender, e) => {
package = fakePackageManagerFactory.FakePackageManager.PackagePassedToUpdatePackage;
};
updatePackageHelper.UpdateTestPackage();
Assert.AreEqual(installPackageHelper.TestPackage, package);
}
}
}

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

@ -92,7 +92,7 @@ namespace PackageManagement.Tests @@ -92,7 +92,7 @@ namespace PackageManagement.Tests
return package;
}
FakePackage InstallPackageWithOnePackageOperation(PackageOperation operation)
FakePackage InstallPackageWithPackageOperations(PackageOperation operation)
{
var operations = new PackageOperation[] {
operation
@ -157,6 +157,24 @@ namespace PackageManagement.Tests @@ -157,6 +157,24 @@ namespace PackageManagement.Tests
return new PackageOperation(package, PackageAction.Install);
}
FakePackage UpdatePackageWithNoPackageOperations()
{
FakePackage package = CreateFakePackage();
var operations = new List<PackageOperation>();
packageManager.UpdatePackage(package, operations);
return package;
}
FakePackage UpdatePackageWithPackageOperations(PackageOperation operation)
{
var operations = new PackageOperation[] {
operation
};
FakePackage package = CreateFakePackage();
packageManager.UpdatePackage(package, operations);
return package;
}
[Test]
public void ProjectManager_InstanceCreated_SourceRepositoryIsSharedRepositoryPassedToPackageManager()
{
@ -242,8 +260,8 @@ namespace PackageManagement.Tests @@ -242,8 +260,8 @@ namespace PackageManagement.Tests
CreateTestableProjectManager();
PackageOperation operation = CreateOneInstallPackageOperation();
InstallPackageWithOnePackageOperation(operation);
InstallPackageWithPackageOperations(operation);
Assert.AreEqual(operation.Package, fakeSolutionSharedRepository.FirstPackageAdded);
}
@ -358,5 +376,37 @@ namespace PackageManagement.Tests @@ -358,5 +376,37 @@ namespace PackageManagement.Tests
Assert.AreEqual("Test", packageRemovedFromProject.Id);
}
[Test]
public void UpdatePackage_PackageInstanceAndNoPackageOperationsPassed_UpdatesReferenceInProject()
{
CreatePackageManager();
CreateTestableProjectManager();
var package = UpdatePackageWithNoPackageOperations();
Assert.AreEqual(package, testableProjectManager.PackagePassedToUpdatePackageReference);
}
[Test]
public void UpdatePackage_PackageInstanceAndNoPackageOperationsPassed_UpdatesDependenciesInProject()
{
CreatePackageManager();
CreateTestableProjectManager();
var package = UpdatePackageWithNoPackageOperations();
Assert.IsTrue(testableProjectManager.UpdateDependenciesPassedToUpdatePackageReference);
}
[Test]
public void UpdatePackage_PackageInstanceAndOneInstallPackageOperationPassed_PackageDefinedInOperationIsInstalledInLocalRepository()
{
CreatePackageManager();
CreateTestableProjectManager();
PackageOperation operation = CreateOneInstallPackageOperation();
UpdatePackageWithPackageOperations(operation);
Assert.AreEqual(operation.Package, fakeSolutionSharedRepository.FirstPackageAdded);
}
}
}

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

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement.Design;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests
{
[TestFixture]
public class UpdatedPackageViewModelTests
{
TestableUpdatedPackageViewModel viewModel;
FakePackageManagementService fakePackageManagementService;
FakePackageRepository sourcePackageRepository;
void CreateViewModel()
{
viewModel = new TestableUpdatedPackageViewModel();
fakePackageManagementService = viewModel.FakePackageManagementService;
sourcePackageRepository = viewModel.FakeSourcePackageRepository;
}
[Test]
public void AddPackage_PackageAddedSuccessfully_PackageUpdatedUsingSourcePackageRepository()
{
CreateViewModel();
viewModel.AddPackage();
Assert.AreEqual(sourcePackageRepository, fakePackageManagementService.RepositoryPassedToUpdatePackage);
}
[Test]
public void AddPackage_PackageAddedSuccessfully_PackageUpdated()
{
CreateViewModel();
viewModel.AddPackage();
var expectedPackage = viewModel.FakePackage;
var actualPackage = fakePackageManagementService.PackagePassedToUpdatePackage;
Assert.AreEqual(expectedPackage, actualPackage);
}
[Test]
public void AddPackage_PackageAddedSuccessfully_PackageUpdatedUsingPackageOperations()
{
CreateViewModel();
viewModel.AddPackage();
var expectedOperations = viewModel.FakePackageOperationResolver.PackageOperations;
var actualOperations = fakePackageManagementService.PackageOperationsPassedToUpdatePackage;
Assert.AreEqual(expectedOperations, actualOperations);
}
}
}
Loading…
Cancel
Save