|
|
|
|
@ -4,6 +4,7 @@
@@ -4,6 +4,7 @@
|
|
|
|
|
using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Linq; |
|
|
|
|
using ICSharpCode.Core; |
|
|
|
|
using ICSharpCode.PackageManagement; |
|
|
|
|
using ICSharpCode.PackageManagement.Design; |
|
|
|
|
using NuGet; |
|
|
|
|
@ -16,10 +17,26 @@ namespace PackageManagement.Tests
@@ -16,10 +17,26 @@ namespace PackageManagement.Tests
|
|
|
|
|
public class RecentPackageRepositoryTests |
|
|
|
|
{ |
|
|
|
|
RecentPackageRepository repository; |
|
|
|
|
PackageManagementOptions options; |
|
|
|
|
FakePackageRepository aggregateRepository; |
|
|
|
|
FakePackageManagementService packageManagementService; |
|
|
|
|
|
|
|
|
|
void CreateRepository() |
|
|
|
|
{ |
|
|
|
|
repository = new RecentPackageRepository(); |
|
|
|
|
CreatePackageManagementService(); |
|
|
|
|
CreateRepository(packageManagementService); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CreatePackageManagementService() |
|
|
|
|
{ |
|
|
|
|
packageManagementService = new FakePackageManagementService(); |
|
|
|
|
options = packageManagementService.Options; |
|
|
|
|
aggregateRepository = packageManagementService.FakeAggregateRepository; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CreateRepository(IPackageManagementService packageManagementService) |
|
|
|
|
{ |
|
|
|
|
repository = new RecentPackageRepository(packageManagementService); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FakePackage AddOnePackageToRepository(string id) |
|
|
|
|
@ -43,6 +60,16 @@ namespace PackageManagement.Tests
@@ -43,6 +60,16 @@ namespace PackageManagement.Tests
|
|
|
|
|
yield return AddOnePackageToRepository("Test.Package.4"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
FakePackage CreateRepositoryWithOneRecentPackageSavedInOptions() |
|
|
|
|
{ |
|
|
|
|
CreatePackageManagementService(); |
|
|
|
|
var package = new FakePackage("Test"); |
|
|
|
|
aggregateRepository.FakePackages.Add(package); |
|
|
|
|
options.RecentPackages.Add(new RecentPackageInfo(package)); |
|
|
|
|
CreateRepository(packageManagementService); |
|
|
|
|
return package; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void Source_NewRecentRepositoryCreated_IsRecentPackages() |
|
|
|
|
{ |
|
|
|
|
@ -89,7 +116,7 @@ namespace PackageManagement.Tests
@@ -89,7 +116,7 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
var expectedPackages = packagesAdded.Reverse().Take(3); |
|
|
|
|
|
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, packages); |
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, packages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
@ -107,5 +134,83 @@ namespace PackageManagement.Tests
@@ -107,5 +134,83 @@ namespace PackageManagement.Tests
|
|
|
|
|
|
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, packages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackage_RepositoryIsEmptyAndOnePackageAdded_RecentPackageAddedToOptions() |
|
|
|
|
{ |
|
|
|
|
CreateRepository(); |
|
|
|
|
var package = AddOnePackageToRepository("Test"); |
|
|
|
|
|
|
|
|
|
var recentPackages = options.RecentPackages; |
|
|
|
|
|
|
|
|
|
var expectedPackages = new RecentPackageInfo[] { |
|
|
|
|
new RecentPackageInfo(package) |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
RecentPackageInfoCollectionAssert.AreEqual(expectedPackages, recentPackages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void AddPackage_RepositoryIsEmptyAndTwoPackagesAddedFromDifferentSources_BothRecentPackagesAddedToOptions() |
|
|
|
|
{ |
|
|
|
|
CreateRepository(); |
|
|
|
|
var package1 = AddOnePackageToRepository("Test1"); |
|
|
|
|
var package2 = AddOnePackageToRepository("Test2"); |
|
|
|
|
|
|
|
|
|
var recentPackages = options.RecentPackages; |
|
|
|
|
|
|
|
|
|
var expectedPackages = new RecentPackageInfo[] { |
|
|
|
|
new RecentPackageInfo(package2), |
|
|
|
|
new RecentPackageInfo(package1) |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
RecentPackageInfoCollectionAssert.AreEqual(expectedPackages, recentPackages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void GetPackages_SavedOptionsHasOneRecentPackage_ContainsPackageTakenFromAggregateRepositoryMatchingSavedRecentPackageInfo() |
|
|
|
|
{ |
|
|
|
|
var package = CreateRepositoryWithOneRecentPackageSavedInOptions(); |
|
|
|
|
|
|
|
|
|
var recentPackages = repository.GetPackages(); |
|
|
|
|
|
|
|
|
|
var expectedPackages = new FakePackage[] { |
|
|
|
|
package |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, recentPackages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void GetPackages_SavedOptionsHasOneRecentPackageAndGetPackagesCalledTwice_OnePackageReturned() |
|
|
|
|
{ |
|
|
|
|
var package = CreateRepositoryWithOneRecentPackageSavedInOptions(); |
|
|
|
|
|
|
|
|
|
repository.GetPackages(); |
|
|
|
|
var recentPackages = repository.GetPackages(); |
|
|
|
|
|
|
|
|
|
var expectedPackages = new FakePackage[] { |
|
|
|
|
package |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, recentPackages); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Test] |
|
|
|
|
public void GetPackages_OneRecentPackageAndAggregrateRepositoryHasTwoPackagesWithSameIdButDifferentVersions_OnePackageReturnedWithMatchingVersion() |
|
|
|
|
{ |
|
|
|
|
var package1 = CreateRepositoryWithOneRecentPackageSavedInOptions(); |
|
|
|
|
var package2 = new FakePackage(package1.Id); |
|
|
|
|
package2.Version = new Version(2, 0); |
|
|
|
|
aggregateRepository.FakePackages.Add(package2); |
|
|
|
|
|
|
|
|
|
var recentPackages = repository.GetPackages(); |
|
|
|
|
|
|
|
|
|
var expectedPackages = new FakePackage[] { |
|
|
|
|
package1 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
PackageCollectionAssert.AreEqual(expectedPackages, recentPackages); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|