19 changed files with 470 additions and 19 deletions
@ -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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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; } |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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…
Reference in new issue