Browse Source

Refactor package management unit tests.

pull/53/merge
Matt Ward 12 years ago
parent
commit
e6c04de4a0
  1. 20
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs
  2. 18
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeOperationAwarePackageRepository.cs
  3. 40
      src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs
  4. 17
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs
  5. 4
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

20
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs

@ -293,7 +293,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -293,7 +293,7 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_SourceRepositoryIsOperationAware_InstallOperationStartedForPackage()
public void ProcessRecord_SourceRepositoryIsOperationAware_InstallOperationStartedForPackageAndDisposed()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
@ -304,23 +304,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -304,23 +304,7 @@ namespace PackageManagement.Cmdlets.Tests
RunCmdlet();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted);
Assert.AreEqual("Test", operationAwareRepository.MainPackageIdForOperationStarted);
}
[Test]
public void ProcessRecord_SourceRepositoryIsOperationAware_InstallOperationStartedIsDisposed()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakeConsoleHost.FakeProject.FakeSourceRepository = operationAwareRepository;
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
RunCmdlet();
operationAwareRepository.AssertOperationIsDisposed();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "Test");
}
}
}

18
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeOperationAwarePackageRepository.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework;
using Rhino.Mocks;
namespace PackageManagement.Tests.Helpers
@ -15,16 +16,23 @@ namespace PackageManagement.Tests.Helpers @@ -15,16 +16,23 @@ namespace PackageManagement.Tests.Helpers
IDisposable Operation = MockRepository.GenerateStub<IDisposable>();
public void AssertOperationIsDisposed()
{
Operation.AssertWasCalled(o => o.Dispose());
}
public IDisposable StartOperation(string operationName, string mainPackageId)
{
OperationStarted = operationName;
MainPackageIdForOperationStarted = mainPackageId;
return Operation;
}
public void AssertOperationWasStartedAndDisposed(string expectedOperationName, string expectedMainPackageId)
{
Assert.AreEqual(expectedOperationName, OperationStarted);
Assert.AreEqual(expectedMainPackageId, MainPackageIdForOperationStarted);
AssertOperationIsDisposed();
}
void AssertOperationIsDisposed()
{
Operation.AssertWasCalled(o => o.Dispose());
}
}
}

40
src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

@ -1460,21 +1460,7 @@ namespace PackageManagement.Tests @@ -1460,21 +1460,7 @@ namespace PackageManagement.Tests
viewModel.AddPackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted);
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
}
[Test]
public void AddPackage_PackageRepositoryIsOperationAwareAndPackageAddedSuccessfully_InstallOperationStartedIsDisposed()
{
CreateViewModel();
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakePackage.FakePackageRepository = operationAwareRepository;
fakePackage.Id = "MyPackage";
viewModel.AddPackage();
operationAwareRepository.AssertOperationIsDisposed();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
}
[Test]
@ -1489,8 +1475,7 @@ namespace PackageManagement.Tests @@ -1489,8 +1475,7 @@ namespace PackageManagement.Tests
viewModel.AddPackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted);
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
}
[Test]
@ -1505,23 +1490,7 @@ namespace PackageManagement.Tests @@ -1505,23 +1490,7 @@ namespace PackageManagement.Tests
viewModel.ManagePackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted);
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
}
[Test]
public void ManagePackage_TwoProjectsAndFirstSelectedAndUserAcceptsSelectedProjectsAndSourceRepositoryIsOperationAware_InstallOperationStartedIsDisposed()
{
CreateViewModelWithTwoProjectsSelected("Project A", "Project B");
UserAcceptsProjectSelection();
fakePackageManagementEvents.ProjectsToSelect.Add("Project A");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakePackage.FakePackageRepository = operationAwareRepository;
fakePackage.Id = "MyPackage";
viewModel.ManagePackage();
operationAwareRepository.AssertOperationIsDisposed();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
}
[Test]
@ -1535,8 +1504,7 @@ namespace PackageManagement.Tests @@ -1535,8 +1504,7 @@ namespace PackageManagement.Tests
viewModel.ManagePackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted);
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
}
}
}

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

@ -140,22 +140,7 @@ namespace PackageManagement.Tests @@ -140,22 +140,7 @@ namespace PackageManagement.Tests
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();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Update, "MyPackage");
}
}
}

4
src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackagesViewModelTests.cs

@ -768,9 +768,7 @@ namespace PackageManagement.Tests @@ -768,9 +768,7 @@ namespace PackageManagement.Tests
RunUpdateAllPackagesCommand();
Assert.AreEqual(RepositoryOperationNames.Update, operationAwareRepository.OperationStarted);
Assert.IsNull(operationAwareRepository.MainPackageIdForOperationStarted);
operationAwareRepository.AssertOperationIsDisposed();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Update, null);
}
}
}

Loading…
Cancel
Save