@ -27,7 +27,8 @@ namespace PackageManagement.Cmdlets.Tests
@@ -27,7 +27,8 @@ namespace PackageManagement.Cmdlets.Tests
fakeSolution = new FakePackageManagementSolution ( ) ;
fakeRegisteredPackageRepositories = cmdlet . FakeRegisteredPackageRepositories ;
fakeConsoleHost = cmdlet . FakePackageManagementConsoleHost ;
fakeConsoleHost . FakeProject = fakeSolution . FakeActiveProject ;
fakeConsoleHost . FakeSolution = fakeSolution ;
fakeConsoleHost . FakeProject = new FakePackageManagementProject ( ) ;
fakeCommandRuntime = cmdlet . FakeCommandRuntime ;
fakeTerminatingError = cmdlet . FakeCmdletTerminatingError ;
@ -49,15 +50,10 @@ namespace PackageManagement.Cmdlets.Tests
@@ -49,15 +50,10 @@ namespace PackageManagement.Cmdlets.Tests
cmdlet . Updates = new SwitchParameter ( true ) ;
}
FakePackage AddPackageToProjectManagerLocalRepository ( string version )
{
return AddPackageToProjectManagerLocalRepository ( "Test" , version ) ;
}
FakePackage AddPackageToProjectManagerLocalRepository ( string id , string version )
FakePackage AddPackageToSpecifiedProjectManagerLocalRepository ( string id , string version )
{
FakePackage package = FakePackage . CreatePackageWithVersion ( id , version ) ;
fakeSolution . AddPackageToActiveProjectLocalRepository ( package ) ;
fakeConsoleHost . FakeProject . FakePackages . Add ( package ) ;
return package ;
}
@ -95,6 +91,11 @@ namespace PackageManagement.Cmdlets.Tests
@@ -95,6 +91,11 @@ namespace PackageManagement.Cmdlets.Tests
{
cmdlet . First = first ;
}
void AddPackageWithVersionToSolution ( string version )
{
fakeSolution . AddPackageToSharedLocalRepository ( "Test" , version ) ;
}
[Test]
public void ProcessRecord_ListAvailablePackagesWhenDefaultPackageSourceHasOnePackage_OutputIsPackagesFromPackageSourceRepository ( )
@ -183,25 +184,25 @@ namespace PackageManagement.Cmdlets.Tests
@@ -183,25 +184,25 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_NoParametersPassed_ReturnsPackagesInstalledForProjectSelectedInConsole ( )
public void ProcessRecord_NoParametersPassed_ReturnsPackagesInstalledForSolution ( )
{
CreateCmdlet ( ) ;
fakeSolution . AddPackageToActiveProject LocalRepository ( "One" ) ;
fakeSolution . AddPackageToActiveProject LocalRepository ( "Two" ) ;
fakeSolution . AddPackageToShared LocalRepository ( "One" ) ;
fakeSolution . AddPackageToShared LocalRepository ( "Two" ) ;
RunCmdlet ( ) ;
List < object > actualPackages = fakeCommandRuntime . ObjectsPassedToWriteObject ;
List < FakePackage > expectedPackages = fakeConsoleHost . FakeProject . Fake Packages ;
List < FakePackage > expectedPackages = fakeSolution . FakeInstalled Packages ;
Assert . AreEqual ( expectedPackages , actualPackages ) ;
}
[Test]
public void ProcessRecord_NoParametersPass ed_NullPackageSourceUsedWhenCreatingProject ( )
public void ProcessRecord_ProjectNameSpecifi ed_NullPackageSourceUsedWhenCreatingProject ( )
{
CreateCmdlet ( ) ;
cmdlet . ProjectName = "Test" ;
RunCmdlet ( ) ;
string actualSource = fakeConsoleHost . PackageSourcePassedToGetProject ;
@ -210,11 +211,10 @@ namespace PackageManagement.Cmdlets.Tests
@@ -210,11 +211,10 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_NoParametersPassed_DefaultProjectInConsoleHost UsedToCreateProject ( )
public void ProcessRecord_ProjectNameSpecified_ProjectName UsedToCreateProject ( )
{
CreateCmdlet ( ) ;
TestableProject project = AddDefaultProjectToConsoleHost ( ) ;
project . Name = "MyProject" ;
cmdlet . ProjectName = "MyProject" ;
RunCmdlet ( ) ;
@ -224,10 +224,10 @@ namespace PackageManagement.Cmdlets.Tests
@@ -224,10 +224,10 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_UpdatedPackagesRequested_ReturnsUpdatedPackagesForActiveProject ( )
public void ProcessRecord_UpdatedPackagesRequestedAndNoProjectName_ReturnsUpdatedPackagesForSolution ( )
{
CreateCmdlet ( ) ;
AddPackageToProjectManagerLocalRepository ( "1.0.0.0" ) ;
AddPackageWithVersionToSolution ( "1.0.0.0" ) ;
FakePackage updatedPackage = AddPackageToAggregateRepository ( "1.1.0.0" ) ;
EnableUpdatesParameter ( ) ;
@ -242,24 +242,11 @@ namespace PackageManagement.Cmdlets.Tests
@@ -242,24 +242,11 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_UpdatedPackagesRequested_ActiveProjectNameUsedWhenCreatingProject ( )
{
CreateCmdlet ( ) ;
TestableProject project = AddDefaultProjectToConsoleHost ( ) ;
project . Name = "Test" ;
EnableUpdatesParameter ( ) ;
RunCmdlet ( ) ;
string actualProjectName = fakeConsoleHost . ProjectNamePassedToGetProject ;
Assert . AreEqual ( "Test" , actualProjectName ) ;
}
[Test]
public void ProcessRecord_UpdatedPackagesRequested_AggregateRepositoryUsedWhenCreatingProject ( )
public void ProcessRecord_UpdatedPackagesRequestedAndProjectNameSpecified_AggregateRepositoryUsedWhenCreatingProject ( )
{
CreateCmdlet ( ) ;
EnableUpdatesParameter ( ) ;
cmdlet . ProjectName = "MyProject" ;
RunCmdlet ( ) ;
IPackageRepository actualRepository = fakeConsoleHost . PackageRepositoryPassedToGetProject ;
@ -290,13 +277,13 @@ namespace PackageManagement.Cmdlets.Tests
@@ -290,13 +277,13 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_FilterParameterPassed_InstalledPackagesAreFiltered ( )
public void ProcessRecord_FilterParameterPassed_InstalledPackagesInSolution AreFiltered ( )
{
CreateCmdlet ( ) ;
AddPackageSourceToConsoleHost ( ) ;
fakeSolution . AddPackageToActiveProject LocalRepository ( "A" ) ;
FakePackage package = fakeSolution . AddPackageToActiveProject LocalRepository ( "B" ) ;
fakeSolution . AddPackageToShared LocalRepository ( "A" ) ;
FakePackage package = fakeSolution . AddPackageToShared LocalRepository ( "B" ) ;
SetFilterParameter ( "B" ) ;
RunCmdlet ( ) ;
@ -310,16 +297,38 @@ namespace PackageManagement.Cmdlets.Tests
@@ -310,16 +297,38 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_UpdatedPackagesRequestedWithFilter_ReturnsFilteredUpdatedPackages ( )
public void ProcessRecord_UpdatedPackagesRequestedWithFilter_ReturnsFilteredUpdatedPackagesFromSolution ( )
{
CreateCmdlet ( ) ;
fakeSolution . AddPackageToSharedLocalRepository ( "A" , "1.0.0.0" ) ;
AddPackageToAggregateRepository ( "A" , "1.1.0.0" ) ;
fakeSolution . AddPackageToSharedLocalRepository ( "B" , "2.0.0.0" ) ;
FakePackage updatedPackage = AddPackageToAggregateRepository ( "B" , "2.1.0.0" ) ;
EnableUpdatesParameter ( ) ;
SetFilterParameter ( "B" ) ;
RunCmdlet ( ) ;
List < object > actualPackages = fakeCommandRuntime . ObjectsPassedToWriteObject ;
var expectedPackages = new FakePackage [ ] {
updatedPackage
} ;
CollectionAssert . AreEqual ( expectedPackages , actualPackages ) ;
}
[Test]
public void ProcessRecord_UpdatedPackagesRequestedWithFilterAndProjectName_ReturnsFilteredUpdatedPackagesFromProject ( )
{
CreateCmdlet ( ) ;
AddPackageToProjectManagerLocalRepository ( "A" , "1.0.0.0" ) ;
AddPackageToSpecified ProjectManagerLocalRepository ( "A" , "1.0.0.0" ) ;
AddPackageToAggregateRepository ( "A" , "1.1.0.0" ) ;
AddPackageToProjectManagerLocalRepository ( "B" , "2.0.0.0" ) ;
AddPackageToSpecified ProjectManagerLocalRepository ( "B" , "2.0.0.0" ) ;
FakePackage updatedPackage = AddPackageToAggregateRepository ( "B" , "2.1.0.0" ) ;
EnableUpdatesParameter ( ) ;
SetFilterParameter ( "B" ) ;
cmdlet . ProjectName = "MyProject" ;
RunCmdlet ( ) ;
List < object > actualPackages = fakeCommandRuntime . ObjectsPassedToWriteObject ;
@ -328,6 +337,7 @@ namespace PackageManagement.Cmdlets.Tests
@@ -328,6 +337,7 @@ namespace PackageManagement.Cmdlets.Tests
} ;
CollectionAssert . AreEqual ( expectedPackages , actualPackages ) ;
Assert . AreEqual ( "MyProject" , fakeConsoleHost . ProjectNamePassedToGetProject ) ;
}
[Test]
@ -348,12 +358,12 @@ namespace PackageManagement.Cmdlets.Tests
@@ -348,12 +358,12 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_Just SourceParameterPassed_ProjectCreatedForPackageSourceSpecifiedByParameter ( )
public void ProcessRecord_SourceParameterAndProjectName Passed_ProjectCreatedForPackageSourceSpecifiedByParameter ( )
{
CreateCmdlet ( ) ;
SetSourceParameter ( "http://test" ) ;
cmdlet . ProjectName = "MyProject" ;
RunCmdlet ( ) ;
string actualPackageSource = fakeConsoleHost . PackageSourcePassedToGetProject ;
@ -363,10 +373,10 @@ namespace PackageManagement.Cmdlets.Tests
@@ -363,10 +373,10 @@ namespace PackageManagement.Cmdlets.Tests
}
[Test]
public void ProcessRecord_Just SourceParameterPassed_ProjectCreatedForPackageSource ( )
public void ProcessRecord_SourceParameterAndProjectName Passed_ProjectCreatedForPackageSource ( )
{
CreateCmdlet ( ) ;
fakeConsoleHost . DefaultProject . Name = "MyProject" ;
cmdlet . Project Name = "MyProject" ;
SetSourceParameter ( "http://test" ) ;
RunCmdlet ( ) ;
@ -419,9 +429,9 @@ namespace PackageManagement.Cmdlets.Tests
@@ -419,9 +429,9 @@ namespace PackageManagement.Cmdlets.Tests
{
CreateCmdlet ( ) ;
AddPackageSourceToConsoleHost ( ) ;
FakePackage packageA = fakeSolution . AddPackageToActiveProject LocalRepository ( "A" ) ;
FakePackage packageB = fakeSolution . AddPackageToActiveProject LocalRepository ( "B" ) ;
FakePackage packageC = fakeSolution . AddPackageToActiveProject LocalRepository ( "C" ) ;
FakePackage packageA = fakeSolution . AddPackageToShared LocalRepository ( "A" ) ;
FakePackage packageB = fakeSolution . AddPackageToShared LocalRepository ( "B" ) ;
FakePackage packageC = fakeSolution . AddPackageToShared LocalRepository ( "C" ) ;
SetFilterParameter ( "B C" ) ;
RunCmdlet ( ) ;
@ -527,6 +537,23 @@ namespace PackageManagement.Cmdlets.Tests
@@ -527,6 +537,23 @@ namespace PackageManagement.Cmdlets.Tests
Assert . AreEqual ( "Test" , projectName ) ;
}
[Test]
public void ProcessRecord_GetInstalledPackagesWhenProjectNameSpecified_ReturnsPackagesInstalledForProject ( )
{
CreateCmdlet ( ) ;
var project = new FakePackageManagementProject ( ) ;
fakeConsoleHost . FakeProject = project ;
project . AddFakePackage ( "One" ) ;
project . AddFakePackage ( "Two" ) ;
cmdlet . ProjectName = "Test" ;
RunCmdlet ( ) ;
List < object > actualPackages = fakeCommandRuntime . ObjectsPassedToWriteObject ;
List < FakePackage > expectedPackages = project . FakePackages ;
Assert . AreEqual ( expectedPackages , actualPackages ) ;
}
[Test]
public void ProcessRecord_GetUpdatedPackagesWhenProjectNameSpecified_ProjectNameParameterUsedToGetProject ( )
{