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
} }
[Test] [Test]
public void ProcessRecord_SourceRepositoryIsOperationAware_InstallOperationStartedForPackage() public void ProcessRecord_SourceRepositoryIsOperationAware_InstallOperationStartedForPackageAndDisposed()
{ {
CreateCmdletWithoutActiveProject(); CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost(); AddDefaultProjectToConsoleHost();
@ -304,23 +304,7 @@ namespace PackageManagement.Cmdlets.Tests
RunCmdlet(); RunCmdlet();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted); operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "Test");
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();
} }
} }
} }

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

@ -4,6 +4,7 @@
using System; using System;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using NuGet; using NuGet;
using NUnit.Framework;
using Rhino.Mocks; using Rhino.Mocks;
namespace PackageManagement.Tests.Helpers namespace PackageManagement.Tests.Helpers
@ -15,16 +16,23 @@ namespace PackageManagement.Tests.Helpers
IDisposable Operation = MockRepository.GenerateStub<IDisposable>(); IDisposable Operation = MockRepository.GenerateStub<IDisposable>();
public void AssertOperationIsDisposed()
{
Operation.AssertWasCalled(o => o.Dispose());
}
public IDisposable StartOperation(string operationName, string mainPackageId) public IDisposable StartOperation(string operationName, string mainPackageId)
{ {
OperationStarted = operationName; OperationStarted = operationName;
MainPackageIdForOperationStarted = mainPackageId; MainPackageIdForOperationStarted = mainPackageId;
return Operation; 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
viewModel.AddPackage(); viewModel.AddPackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted); operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
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();
} }
[Test] [Test]
@ -1489,8 +1475,7 @@ namespace PackageManagement.Tests
viewModel.AddPackage(); viewModel.AddPackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted); operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
} }
[Test] [Test]
@ -1505,23 +1490,7 @@ namespace PackageManagement.Tests
viewModel.ManagePackage(); viewModel.ManagePackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted); operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
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();
} }
[Test] [Test]
@ -1535,8 +1504,7 @@ namespace PackageManagement.Tests
viewModel.ManagePackage(); viewModel.ManagePackage();
Assert.AreEqual(RepositoryOperationNames.Install, operationAwareRepository.OperationStarted); operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Install, "MyPackage");
Assert.AreEqual("MyPackage", operationAwareRepository.MainPackageIdForOperationStarted);
} }
} }
} }

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

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

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

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

Loading…
Cancel
Save