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