|
|
|
|
@ -10,6 +10,7 @@ using ICSharpCode.PackageManagement.Scripting;
@@ -10,6 +10,7 @@ using ICSharpCode.PackageManagement.Scripting;
|
|
|
|
|
using NuGet; |
|
|
|
|
using NUnit.Framework; |
|
|
|
|
using PackageManagement.Tests.Helpers; |
|
|
|
|
using Rhino.Mocks; |
|
|
|
|
|
|
|
|
|
namespace PackageManagement.Tests |
|
|
|
|
{ |
|
|
|
|
@ -22,11 +23,11 @@ namespace PackageManagement.Tests
@@ -22,11 +23,11 @@ namespace PackageManagement.Tests
|
|
|
|
|
FakePackageManagementEvents fakePackageManagementEvents; |
|
|
|
|
ExceptionThrowingPackageManagementSolution exceptionThrowingSolution; |
|
|
|
|
ExceptionThrowingPackageManagementProject exceptionThrowingProject; |
|
|
|
|
FakeInstallPackageAction fakeInstallPackageAction; |
|
|
|
|
FakeUninstallPackageAction fakeUninstallPackageAction; |
|
|
|
|
FakeLogger fakeLogger; |
|
|
|
|
FakePackageActionRunner fakeActionRunner; |
|
|
|
|
List<FakeSelectedProject> fakeSelectedProjects; |
|
|
|
|
IPackageViewModelParent viewModelParent; |
|
|
|
|
|
|
|
|
|
void CreateFakeSolution() |
|
|
|
|
{ |
|
|
|
|
@ -56,12 +57,12 @@ namespace PackageManagement.Tests
@@ -56,12 +57,12 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
void CreateViewModel(FakePackageManagementSolution solution) |
|
|
|
|
{ |
|
|
|
|
viewModel = new TestablePackageViewModel(solution); |
|
|
|
|
viewModelParent = MockRepository.GenerateStub<IPackageViewModelParent>(); |
|
|
|
|
viewModel = new TestablePackageViewModel(viewModelParent, solution); |
|
|
|
|
fakePackage = viewModel.FakePackage; |
|
|
|
|
this.fakeSolution = solution; |
|
|
|
|
fakePackageManagementEvents = viewModel.FakePackageManagementEvents; |
|
|
|
|
fakeLogger = viewModel.FakeLogger; |
|
|
|
|
fakeInstallPackageAction = solution.FakeProjectToReturnFromGetProject.FakeInstallPackageAction; |
|
|
|
|
fakeUninstallPackageAction = solution.FakeProjectToReturnFromGetProject.FakeUninstallPackageAction; |
|
|
|
|
fakeActionRunner = viewModel.FakeActionRunner; |
|
|
|
|
} |
|
|
|
|
@ -147,6 +148,11 @@ namespace PackageManagement.Tests
@@ -147,6 +148,11 @@ namespace PackageManagement.Tests
|
|
|
|
|
get { return fakeSelectedProjects[1]; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ParentAllowsPrereleasePackages() |
|
|
|
|
{ |
|
|
|
|
viewModelParent.Stub(parent => parent.IncludePrerelease).Return(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackageCommand_CommandExecuted_InstallsPackage() |
|
|
|
|
{ |
|
|
|
|
@ -154,8 +160,9 @@ namespace PackageManagement.Tests
@@ -154,8 +160,9 @@ namespace PackageManagement.Tests
|
|
|
|
|
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage(); |
|
|
|
|
|
|
|
|
|
viewModel.AddPackageCommand.Execute(null); |
|
|
|
|
|
|
|
|
|
Assert.AreEqual(fakePackage, fakeInstallPackageAction.Package); |
|
|
|
|
|
|
|
|
|
IPackage package = fakeSolution.FakeProjectToReturnFromGetProject.LastInstallPackageCreated.Package; |
|
|
|
|
Assert.AreEqual(fakePackage, package); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -178,8 +185,8 @@ namespace PackageManagement.Tests
@@ -178,8 +185,8 @@ namespace PackageManagement.Tests
|
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
IPackageAction actionExecuted = fakeActionRunner.ActionPassedToRun; |
|
|
|
|
|
|
|
|
|
Assert.AreEqual(fakeInstallPackageAction, actionExecuted); |
|
|
|
|
IPackageAction action = fakeSolution.FakeProjectToReturnFromGetProject.LastInstallPackageCreated; |
|
|
|
|
Assert.AreEqual(action, actionExecuted); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -193,7 +200,8 @@ namespace PackageManagement.Tests
@@ -193,7 +200,8 @@ namespace PackageManagement.Tests
|
|
|
|
|
new PackageOperation(fakePackage, PackageAction.Install) |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
CollectionAssert.AreEqual(expectedOperations, fakeInstallPackageAction.Operations); |
|
|
|
|
FakeInstallPackageAction action = fakeSolution.FakeProjectToReturnFromGetProject.LastInstallPackageCreated; |
|
|
|
|
CollectionAssert.AreEqual(expectedOperations, action.Operations); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -215,7 +223,8 @@ namespace PackageManagement.Tests
@@ -215,7 +223,8 @@ namespace PackageManagement.Tests
|
|
|
|
|
CreateViewModel(); |
|
|
|
|
IPackage packagePassedToInstallPackageWhenPropertyNameChanged = null; |
|
|
|
|
viewModel.PropertyChanged += (sender, e) => { |
|
|
|
|
packagePassedToInstallPackageWhenPropertyNameChanged = fakeInstallPackageAction.Package; |
|
|
|
|
packagePassedToInstallPackageWhenPropertyNameChanged = |
|
|
|
|
fakeSolution.FakeProjectToReturnFromGetProject.LastInstallPackageCreated.Package; |
|
|
|
|
}; |
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
@ -481,7 +490,8 @@ namespace PackageManagement.Tests
@@ -481,7 +490,8 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
Assert.IsFalse(fakeInstallPackageAction.IsExecuteCalled); |
|
|
|
|
FakeInstallPackageAction action = fakeSolution.FakeProjectToReturnFromGetProject.LastInstallPackageCreated; |
|
|
|
|
Assert.IsFalse(action.IsExecuteCalled); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -732,6 +742,21 @@ namespace PackageManagement.Tests
@@ -732,6 +742,21 @@ namespace PackageManagement.Tests
|
|
|
|
|
Assert.IsFalse(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackage_ParentHasIncludePrereleaseSetToTrueWhenInstalling_PrereleaseVersionsAllowedWhenCheckingForPackageOperations() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
ParentAllowsPrereleasePackages(); |
|
|
|
|
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage(); |
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
bool result = fakeSolution |
|
|
|
|
.FakeProjectToReturnFromGetProject |
|
|
|
|
.AllowPrereleaseVersionsPassedToGetInstallPackageOperations; |
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void RemovePackage_PackageRemovedSuccessfully_PackageIsRemoved() |
|
|
|
|
{ |
|
|
|
|
@ -898,18 +923,48 @@ namespace PackageManagement.Tests
@@ -898,18 +923,48 @@ namespace PackageManagement.Tests
|
|
|
|
|
CreateTwoFakeSelectedProjects(); |
|
|
|
|
FakeSelectedProject project = fakeSelectedProjects[1]; |
|
|
|
|
project.IsSelected = true; |
|
|
|
|
InstallPackageAction expectedAction = project.FakeInstallPackageAction; |
|
|
|
|
|
|
|
|
|
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects); |
|
|
|
|
|
|
|
|
|
List<IPackageAction> actions = fakeActionRunner.GetActionsRunInOneCallAsList(); |
|
|
|
|
InstallPackageAction action = actions[0] as InstallPackageAction; |
|
|
|
|
|
|
|
|
|
InstallPackageAction expectedAction = project.FakeProject.LastInstallPackageCreated; |
|
|
|
|
Assert.AreEqual(1, actions.Count); |
|
|
|
|
Assert.AreEqual(fakePackage, action.Package); |
|
|
|
|
Assert.AreEqual(expectedAction, action); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void ManagePackagesForSelectedProjects_ParentAllowsPrereleasePackagesAndOneProjectIsSelected_OneProjectIsInstalledAllowingPrereleasePackages() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
CreateTwoFakeSelectedProjects(); |
|
|
|
|
ParentAllowsPrereleasePackages(); |
|
|
|
|
FakeSelectedProject project = fakeSelectedProjects[1]; |
|
|
|
|
project.IsSelected = true; |
|
|
|
|
|
|
|
|
|
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects); |
|
|
|
|
|
|
|
|
|
List<IPackageAction> actions = fakeActionRunner.GetActionsRunInOneCallAsList(); |
|
|
|
|
InstallPackageAction action = actions[0] as InstallPackageAction; |
|
|
|
|
Assert.IsTrue(action.AllowPrereleaseVersions); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void ManagePackagesForSelectedProjects_ParentDoesNotAllowPrereleasePackagesAndOneProjectIsSelected_OneProjectIsInstalledNotAllowingPrereleasePackages() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
CreateTwoFakeSelectedProjects(); |
|
|
|
|
FakeSelectedProject project = fakeSelectedProjects[1]; |
|
|
|
|
project.IsSelected = true; |
|
|
|
|
|
|
|
|
|
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects); |
|
|
|
|
|
|
|
|
|
List<IPackageAction> actions = fakeActionRunner.GetActionsRunInOneCallAsList(); |
|
|
|
|
InstallPackageAction action = actions[0] as InstallPackageAction; |
|
|
|
|
Assert.IsFalse(action.AllowPrereleaseVersions); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndPackageOperationRequiresLicenseAcceptance_UserPromptedToAcceptLicenses() |
|
|
|
|
{ |
|
|
|
|
@ -986,6 +1041,25 @@ namespace PackageManagement.Tests
@@ -986,6 +1041,25 @@ namespace PackageManagement.Tests
|
|
|
|
|
Assert.IsFalse(allowed); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void ManagePackagesForSelectedProjects_ParentAllowsPrereleasesAndFirstProjectIsSelectedAndPackageOperationRequiresLicenseAcceptance_PrereleaseVersionsAreAllowedInPackageOperations() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
CreateTwoFakeSelectedProjects(); |
|
|
|
|
FakeSelectedProject selectedProject = fakeSelectedProjects[0]; |
|
|
|
|
selectedProject.IsSelected = true; |
|
|
|
|
FakePackageOperation operation = selectedProject.AddFakeInstallPackageOperation(); |
|
|
|
|
operation.FakePackage.RequireLicenseAcceptance = true; |
|
|
|
|
fakePackageManagementEvents.OnAcceptLicensesReturnValue = false; |
|
|
|
|
ParentAllowsPrereleasePackages(); |
|
|
|
|
|
|
|
|
|
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects); |
|
|
|
|
|
|
|
|
|
bool allowed = selectedProject.FakeProject.AllowPrereleaseVersionsPassedToGetInstallPackageOperations; |
|
|
|
|
|
|
|
|
|
Assert.IsTrue(allowed); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void ManagePackagesForSelectedProjects_FirstProjectIsSelectedAndTwoPackageOperationsRequireLicenseAcceptance_UserPromptedToAcceptLicensesForTwoPackages() |
|
|
|
|
{ |
|
|
|
|
@ -1110,7 +1184,7 @@ namespace PackageManagement.Tests
@@ -1110,7 +1184,7 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects); |
|
|
|
|
|
|
|
|
|
InstallPackageAction expectedAction = FirstFakeSelectedProject.FakeInstallPackageAction; |
|
|
|
|
InstallPackageAction expectedAction = FirstFakeSelectedProject.FakeProject.LastInstallPackageCreated; |
|
|
|
|
List<IPackageAction> actions = fakeActionRunner.GetActionsRunInOneCallAsList(); |
|
|
|
|
InstallPackageAction action = actions[0] as InstallPackageAction; |
|
|
|
|
|
|
|
|
|
@ -1269,5 +1343,30 @@ namespace PackageManagement.Tests
@@ -1269,5 +1343,30 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual("Expected description", summary); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackage_ParentAllowsPrereleasePackages_PackageIsInstalledAllowingPrereleasePackages() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
ParentAllowsPrereleasePackages(); |
|
|
|
|
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage(); |
|
|
|
|
|
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
var action = fakeActionRunner.ActionPassedToRun as InstallPackageAction; |
|
|
|
|
Assert.IsTrue(action.AllowPrereleaseVersions); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackage_ParentDoesNotAllowPrereleasePackages_PackageIsInstalledNotAllowingPrereleasePackages() |
|
|
|
|
{ |
|
|
|
|
CreateViewModel(); |
|
|
|
|
viewModel.AddOneFakeInstallPackageOperationForViewModelPackage(); |
|
|
|
|
|
|
|
|
|
viewModel.AddPackage(); |
|
|
|
|
|
|
|
|
|
var action = fakeActionRunner.ActionPassedToRun as InstallPackageAction; |
|
|
|
|
Assert.IsFalse(action.AllowPrereleaseVersions); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|